C#根据控件名获取控件
在网上看到的方法主要有两种。
1.
string name=“Label” + “1”;
foreach (Control item in this.Controls)
{
if (item. Name == name)
item. Visible = true;
}
这种方法虽然可以实现效果,但过于复杂,写得太多。
2.遍历一个parent里面所有控件,根据控件类型获取控件。
这种方法干脆就跟控件名没关系,只跟控件类型有关。
可以这么写:
for(int i=0;i<=10;i++)
A.Controls[“textBox” + i].Visible = true;
其中“ “textBox” + i ” 是控件名,A是控件的parent,并且必须是仅上一级parent,不能说Form1是panel1的parent,panel1是textBox1的parent,就写作Form1.Controls[“textBox1” ].Visible = true;
值得一提的是,在VB.net里面也有这样的写法,不过VB里面是:
B.Controls(“Label” & i).Tag