2016-11-23 4 views
1

私は現在、VS2015のC#とADO.NETを使用して個人的なプロジェクトを作成しており、データベースとのインターフェイスの基本的なウィンドウフォームを作成しています。Windowsのすべてのグループボックスをループする

私は現在、さまざまなフォーム要素をリセットする一連のクリアルーチンを書いています。すべてのフォームコントロールはGroupBox内に格納されています。私はすべてのGroupBoxをループする最良の方法を決定しようとしているので、各コントロールをループしてクリアすることができます。今のところ、私はTextBoxをクリアしようとしています。ここで

は、私はコードを持っているものです:

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

現在、私が述べて2行目にエラーが表示されます。 型「System.InvalidCastExceptionの」の未処理の例外

の場合誰もが私はそれが非常に感謝されるこれを介して自分の道を把握することができます!

+3

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

答えて

0

私は、GroupBoxに子供がいることを見落としていると判断しました。 サブルーチンの子コントロールを考慮することで、私は問題を解決できました。問題を修正して少しクリーンアップしたら、私のコードは次のようになります。

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

      if (con.HasChildren) 
      { 
       ClearTextBoxes(con); 
      } 
     } 
    } 
関連する問題