如果你还需要列出控件内的控件,那么就用到递归,否则amandag的就够了。
递归
List<string> list = new list();
private void getControls(Controls)
{
foreach (Control c in Controls)
{
list.Add(c.Name);
getControls(c);
}
}
调用:
getControls(this);
执行完上面的以后就取list 里面的值。
递归
List<string> list = new list();
private void getControls(Controls)
{
foreach (Control c in Controls)
{
list.Add(c.Name);
getControls(c);
}
}
调用:
getControls(this);
执行完上面的以后就取list 里面的值。
{
......
}
是不是LZ的意思?
{}
{ }呵呵,楼上的都说了!
{
foreach (Control ctl in parent.Controls)
{
MessageBox.Show(ctl.Name);
if (ctl.Controls.Count > 0)
GetControl(ctl);
}
}
得到窗体 form 的所有控件。
GetControl(form)
用递归,一楼的正解,不过
List <string> list = new list();
应该是List<Control> list = new List()吧。
函数打快了 应该是:
private void GetControl(Control parent)
{
foreach (Control ctl in parent.Controls)
{
MessageBox.Show(ctl.Name);
if (ctl.Controls.Count > 0)
GetControl(ctl);
}
}
foreach (var item in this.components.Components)
{
//这里获取的是组件
} foreach (var item in this.Controls)
{
//这里获取的是控件
}
{
//这里获取的是组件
}这个不错,以前没用过
{
MessageBox.Show(c.Name);
}
当然了,如果你的form里面有一个textbox和一个容器控件,例如panel,他就只能枚举出来textbox和panel,容器中的控件枚举不出来,panel中的控件在this.panel1.Controls集合中
[/Quote]var 是.net3.0的新特性,
匿名类型