2016-11-23 82 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); 
      } 
     } 
    }