foreach (Control ctl in this.Controls) { if ((ctl as GroupBox) != null) { foreach (Control c in ctl.Controls) { ComboBox cbb = c as ComboBox; if (cbb != null) { // } } } }
大致思路: public List<Control> FindControls() { List<Control> result = new List<Control>(); foreach (Control c in Controls) { foreach (Control item in FindInSubControl(c)) result.Add(item); } return result; }private List<Control> FindInSubControl(Control parent) { List<Control> result = new List<Control>(); foreach (Control c in parent.Controls) { foreach (Control item in FindInSubControl(c)) result.Add(item); result.Add(parent); } return result; }
foreach (Control ctl in this.Controls)
{
if ((ctl as GroupBox) != null)
{
foreach (Control c in ctl.Controls)
{
ComboBox cbb = c as ComboBox;
if (cbb != null)
{
//
}
}
}
}
但是貌似是要通过一层一层的查找才行...
public List<Control> FindControls()
{
List<Control> result = new List<Control>();
foreach (Control c in Controls)
{
foreach (Control item in FindInSubControl(c)) result.Add(item);
}
return result;
}private List<Control> FindInSubControl(Control parent)
{
List<Control> result = new List<Control>();
foreach (Control c in parent.Controls)
{
foreach (Control item in FindInSubControl(c)) result.Add(item);
result.Add(parent);
}
return result;
}
如何清空GroupBox中所有的控件呢?这些控件是动态生成的,我觉得只需要一句话就好,但是我不会用,求大家帮忙。
//略gb.Controls.Clear();