默认控件集合

时间:2012-12-01 17:06:35

标签: c# winforms collections controls

当我创造&使用设计器向我的WinForm添加一个控件,我的控件是否自动添加到一个集合中,其他所有人都在哪里?

假设有20 TextBox,我需要同时清除它们而不是这样说:

txtbox1.Clear();
txtbox2.Clear();
txtbox3.Clear();
...

我知道我应该在没有设计师的情况下手动创建每个控件并将它们添加到集合中,但现在已经太晚了。那么我是否可以访问整组控件?

2 个答案:

答案 0 :(得分:2)

试试这个

private void ClearTextBoxes()
{
 Action<Control.ControlCollection> func = null;

 func = (controls) =>
     {
         foreach (Control control in controls)
             if (control is TextBox)
                 (control as TextBox).Clear();
             else
                 func(control.Controls);
     };

 func(Controls);
}

答案 1 :(得分:0)

哦,实际上,在我写完问题后,我确实知道如何做到这一点。 我可以在foreach loop上使用this.controls。 然后我测试控件是否为TextBox

foreach (Control x in this.Controls)
{
  if (x is TextBox)
  {
    ((TextBox)x).Text = String.Empty;
  }   
}