【问题标题】:How to get all control list of the Form in c#? [duplicate]如何在c#中获取表单的所有控制列表? [复制]
【发布时间】:2012-12-18 12:33:54
【问题描述】:

可能重复:
how to get all controls of win form?

我有一个如下图所示的winform。

我想要 MainForm 的所有控件的列表。
像这样:
主窗体
按钮1
面板1
文本框1
面板2
按钮2
文本框2

【问题讨论】:

  • 只需遍历 MainForm、Panel1 和 Panel2 上的控件即可。

标签: c# winforms


【解决方案1】:

这样的东西应该可以工作(无论如何都不是完美的代码......只是为了传达这个想法):

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)

【讨论】:

  • 父控件应该排在子控件之前?
  • mhm 在这里不应该很重要 :)
  • 只是一个建议 :) 已经给了 +1
猜你喜欢
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 2019-08-02
  • 1970-01-01
相关资源
最近更新 更多