-3

可能重复:
如何获得胜利形式的所有控制?

我有一个如下图所示的winform。
在此处输入图像描述
我想要一个 MainForm 的所有控件的列表。
像这样:
MainForm
Button1
Panel1
TextBox1
Panel2
Button2
TextBox2

4

1 回答 1

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)
于 2012-12-18T12:41:09.000 回答