我有一个如下图所示的winform
我想要一个MainForm所有控件的列表
像这样:
MainForm的
Button1的
PANEL1
TextBox1的
是Panel2
BUTTON2
TextBox2
答案 0 :(得分:7)
这样的事情应该有效(不是任何方式的完美代码......只是为了让这个想法得以实现):
public IEnumerable<Control> GetSelfAndChildrenRecursive(Control parent)
{
List<Control> controls = new List<Control>();
foreach(Control child in parent.Controls)
{
controls.AddRange(GetSelfAndChildrenRecursive(child));
}
controls.Add(parent);
return controls;
}
var result = GetSelfAndChildrenRecursive(topLevelControl)