フォーム内のすべてのテキストボックスをクリアする
- C#
- VB.NET
スポンサーリンク
フォーム内のすべてのテキストボックスをクリアするには、Controls プロパティでコントロールを列挙し、型が TextBoxBase の派生型である場合に Text をクリアすることで可能です。Controls プロパティで列挙されたコントロールの中にさらにコントロールが含まれる場合がありますので、再帰呼び出しが必要となります。
今回は例として「フォーム内のすべてのテキストボックスをクリアする」と書きましたが、これは別に TextBox でなくとも問題ないですし、クリアではなく別の目的に使用することも可能です。
以下のように ClearTextBox メソッドという静的なメソッドを書きます。このメソッドの引数は、親となるコントロールです。フォーム内を探したい場合は、そのフォームのインスタンスを指定します。フォームに限らず、GroupBox などのコントロールを指定することで、GroupBox 内のみを検索することが可能です。
サンプルコード
以下にサンプルコードを示します。
VB.NET 全般
''' -------------------------------------------------------------------------------- ''' <summary> ''' 指定したコントロール内に含まれる TextBox の Text をクリアします。</summary> ''' <param name="hParent"> ''' 検索対象となる親コントロール。</param> ''' -------------------------------------------------------------------------------- Public Shared Sub ClearTextBox(ByVal hParent As Control) ' hParent 内のすべてのコントロールを列挙する For Each cControl As Control In hParent.Controls ' 列挙したコントロールにコントロールが含まれている場合は再帰呼び出しする If cControl.HasChildren Then ClearTextBox(cControl) End If ' コントロールの型が TextBoxBase からの派生型の場合は Text をクリアする If TypeOf cControl Is TextBoxBase Then cControl.Text = String.Empty End If Next cControl End Sub
使用例は以下のようになります。
VB.NET 全般
' 現在のフォーム内のすべての TextBox の Text をクリアする ClearTextBox(Me)
関連するリファレンス
準備中です。