一次从类中访问多个表单控件

时间:2014-12-21 18:37:40

标签: c#

我最近正在寻找一种方法来访问,比如我的表格上的文本框。

我找到了一种方法(例如更改文本框中的文本),如下所示:

MyClass c1 = new Myclass();
c1.method(textBox1);

上课:

class MyClass
{
     public void method(Object obj)
     {
         (obj as TextBox).Text = "a";
     }
}

我的2个问题:

  • 这是一种正确的方法吗?

  • 我可以一次访问多个文本框,而不会将20个文本框作为参数传递给我的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您只需传递form的引用即可访问其所有控件:

class MyClass
{
    public void method(Form1 objForm)
    {
        (objForm.Controls.Find("textBox1", true)[0] as TextBox).Text = "1";
        (objForm.Controls.Find("textBox2", true)[0] as TextBox).Text = "2";
        (objForm.Controls.Find("textBox3", true)[0] as TextBox).Text = "3";
    }
}

要使用此代码,您只需传递表单的引用:

MyClass c1 = new Myclass();
c1.method(this);

<强>解释

该方法将引用原始form的对象。然后它将在form的控件列表中搜索指定的控件,并将选择数组的第一项。之后,它会将该项目转换为TextBox(因为我们搜索的项目的类型为TextBox),然后将设置其属性值。