【问题标题】:C# Forms. How do I refer to a control from within that controlC# 表单。如何从该控件中引用控件
【发布时间】:2018-10-05 15:01:55
【问题描述】:

我编写了一段代码,将书面语言转换为希伯来语(通过我开发的参考)。 例如,当我输入一个文本框控件并且我需要它以希伯来语写作时,我会在其 Enter 事件中添加以下内容:

private void txtTestDirectionRTL_Enter(object sender, System.EventArgs e)
    {
        HebChng ();
        txtTestDirectionRTL.RightToLeft = RightToLeft.Yes;
    }

HebChng 将输入语言转换为希伯来语。 现在,第二行代码确定了该文本框的流向。 我想做的是用其他含义而不是其显式名称来引用该控件。

关键字“this”指的是类。有什么可以用来指代我所在控件的名称吗?

这个可以吗?

【问题讨论】:

  • (TextBox)sender 通常适用于来自 WinForms UI 组件的事件(显然将 TextBox 更改为组件类型)。

标签: c# forms controls


【解决方案1】:

您可以像这样通过事件函数的发送者获取对象

(sender as TextBox).RightToLeft   = RightToLeft.Yes;

【讨论】:

    【解决方案2】:

    该方法有一个参数“object sender” - 您可以通过将其转换为正确的类来使用它。例如:

    private void txtTestDirectionRTL_Enter(object sender, System.EventArgs e)
    {
      HebChng ();
      TextBox myControl = (TextBox)sender;
      myControl.RightToLeft = RightToLeft.Yes;
    }
    

    请注意,这适用于所有控件事件处理程序 - 第一个参数是一个对象,它是对原始控件(即“发送者”)的引用。如果您覆盖 Visual Studio 自动生成的处理程序,这应该允许您对多个控件使用相同的事件处理程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多