33
社区成员




private void button1_Click(object sender, EventArgs e)
{
//遍历控件
Control.ControlCollection sonControls =??????????.Controls;
{ //?????怎么填我填From1根本不对
//遍历控件
//Control.ControlCollection sonControls = Froms.Controls;
//遍历所有控件
foreach (Control control in sonControls)
{
string s = control.Name;//获得控件名称
string s2 = control.GetType().ToString();//得到控件的类型名称
}
};
}
求教如何遍历所有控件
可以使用 Form 类的 Controls 属性来获取窗体中的所有控件。可以将该属性传递给遍历函数,即可遍历窗体中的所有控件。
示例代码:
```java
private void button1_Click(object sender, EventArgs e)
{
//遍历控件
Control.ControlCollection sonControls = this.Controls;
{
//遍历控件
//Control.ControlCollection sonControls = Froms.Controls;
//遍历所有控件
foreach (Control control in sonControls)
{
string s = control.Name;//获得控件名称
string s2 = control.GetType().ToString();//得到控件的类型名称
}
};
}
需要注意的是,在遍历控件时,可能会有一些控件包含子控件。如果需要遍历所有子控件,可以使用递归的方式遍历。示例代码如下:
private void TraverseControls(Control control)
{
string s = control.Name;//获得控件名称
string s2 = control.GetType().ToString();//得到控件的类型名称
foreach (Control sonControl in control.Controls)
{
TraverseControls(sonControl);
}
}
private void button1_Click(object sender, EventArgs e)
{
TraverseControls(this);
}
```
该示例代码会遍历窗体中的所有控件,包括子控件和孙子控件等。在遍历控件时,可以根据需要进行相应的操作。
private void TraverseControls(Control.ControlCollection controls)
{
foreach (Control control in controls)
{
// 处理当前控件
string controlName = control.Name;
string controlType = control.GetType().ToString();
// 如果当前控件包含子控件,则递归遍历子控件
if (control.Controls.Count > 0)
{
TraverseControls(control.Controls);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
TraverseControls(this.Controls);
}
代码中,TraverseControls 方法接受一个 Control.ControlCollection 参数,用于遍历该集合中的控件。在每次遍历时,可以处理当前控件的相关逻辑,如获取控件的名称和类型等。如果当前控件还包含子控件,就使用递归方式调用 TraverseControls 方法,继续遍历子控件的集合。
在按钮的点击事件处理方法 button1_Click 中,调用 TraverseControls 方法,并传递窗体的 Controls 集合作为参数,即可遍历整个窗体中的所有控件。