2016-11-23 78 views
1

我目前正在使用VS2015中的C#和ADO.NET制作一个个人项目,以制作与数据库接口的基本Windows窗体。在Windows窗体上循环遍历所有GroupBox表单

我目前正在编写一系列Clear例程来重置各种表单元素。所有表单控件都位于GroupBoxes内。我试图确定循环遍历所有GroupBox的最佳方式,因此我可以循环遍历每个控件并清除它。目前我只是试图清除TextBoxes。

这里是我有下面的代码:

public void ClearTextBoxes(Control control) 
    { 
     foreach (GroupBox groupBox in control.Controls) 
     { 
      foreach (Control con in groupBox.Controls) 
      { 
       if (con is TextBox) 
       { 
        ((TextBox)con).Clear(); 
       } 
      } 
     }  
    } 

目前,我收到了第二条线是一条错误: 类型则“”

如果未处理的异常任何人都可以帮助我想通过这个方式,我将不胜感激!

+3

'在control.Controls.OfType ()' – LarsTech

回答

0

我确定我的问题是忽略GroupBoxes有孩子。 通过考虑子例程中的子控件,我能够解决问题。固定的问题,在这里做一些清理后是我的代码是什么样子:

public void ClearTextBoxes(Control control) 
    { 
     foreach (Control con in control.Controls) 
     { 
      TextBox box = con as TextBox; 
      box?.Clear(); 

      if (con.HasChildren) 
      { 
       ClearTextBoxes(con); 
      } 
     } 
    }