如何获取Windows窗体页面上的所有控件

时间:2011-10-28 08:23:05

标签: c# .net winforms

  

我有一个窗体;它有几个控件。
  我想让它们在foreach循环中调用每个控件的Clear()方法,使其清晰并重新初始化项目。

我该怎么做?**

  

当我在Vs 2008的调试模式上看到formpage时,我看到了“this”,因此我可以在里面看到所有这些......

.net版本:2.0

3 个答案:

答案 0 :(得分:2)

您可能对控件等控件有控件。因此将Dmitry Erokhin的代码放在递归函数中可能是个好主意:

private void ClearNumberEntries(ControlCollection controls)
{
    foreach (Control ctrl in controls)
    {
        if (ctrl is NumberEntry)
        {
            ((NumberEntry)ctrl).Clear();
        }
        //if you are sure a NumberEntry can never have child controls that could also be of type NumberEntry you can put this in an else in stead
        ClearNumberEntries(ctrl.Controls);
    }
}

答案 1 :(得分:1)

您可以迭代这样的控件:

foreach (Control ctrl in this.Controls)
{
    if (ctrl is NumberEntry)
    {
        ((NumberEntry)ctrl).Clear();
    }
}

答案 2 :(得分:0)

再次初始化控件无需清除每个控件,只需清除窗体中的控件并调用InitializeComponent()

 private void InitializeControls()
        {
            this.Controls.Clear();
            InitializeComponent();
        }