0

当我WinForm使用设计器创建控件并将其添加到我的控件时,我的控件是否会与其他所有控件一起自动添加到集合中?

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

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

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

4

2 回答 2

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);
}
于 2012-12-01T17:09:57.583 回答
0

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

foreach (Control x in this.Controls)
{
  if (x is TextBox)
  {
    ((TextBox)x).Text = String.Empty;
  }   
}
于 2012-12-01T17:10:14.120 回答