从表单获取可用控件

Rav*_*avi 0 c# winforms

如何使用C#从Windows窗体表单获取可用控件?

eri*_*len 20

或者,ProfK的可枚举语法解决方案:

public static IEnumerable<Control> GetControls(Control form) {
    foreach (Control childControl in form.Controls) {   // Recurse child controls.
        foreach (Control grandChild in GetControls(childControl)) {
            yield return grandChild;
        }
        yield return childControl;
    }
}
Run Code Online (Sandbox Code Playgroud)


Pro*_*ofK 5

在表单中尝试此方法.它将以递归方式获取表单上的所有控件及其子项:

public static List<Control> GetControls(Control form)
{
    var controlList = new List<Control>();

    foreach (Control childControl in form.Controls)
    {
        // Recurse child controls.
        controlList.AddRange(GetControls(childControl));
        controlList.Add(childControl);
    }
    return controlList;
}
Run Code Online (Sandbox Code Playgroud)

然后用:

List<Control> availControls = GetControls(this);
Run Code Online (Sandbox Code Playgroud)