我最近正在寻找一种方法来访问,比如我的表格上的文本框。
我找到了一种方法(例如更改文本框中的文本),如下所示:
MyClass c1 = new Myclass();
c1.method(textBox1);
上课:
class MyClass
{
public void method(Object obj)
{
(obj as TextBox).Text = "a";
}
}
我的2个问题:
这是一种正确的方法吗?
我可以一次访问多个文本框,而不会将20个文本框作为参数传递给我的方法吗?
谢谢。
答案 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
),然后将设置其属性值。