【发布时间】:2012-12-18 12:33:54
【问题描述】:
我有一个如下图所示的winform。
我想要 MainForm 的所有控件的列表。
像这样:
主窗体
按钮1
面板1
文本框1
面板2
按钮2
文本框2
【问题讨论】:
-
只需遍历 MainForm、Panel1 和 Panel2 上的控件即可。
我有一个如下图所示的winform。
我想要 MainForm 的所有控件的列表。
像这样:
主窗体
按钮1
面板1
文本框1
面板2
按钮2
文本框2
【问题讨论】:
这样的东西应该可以工作(无论如何都不是完美的代码......只是为了传达这个想法):
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)
【讨论】: