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