[C#]Form上の全TextBoxに対し、Ctrl-Aで全選択できるようにする方法

VisualStudioにてWinFormを使用したプログラムを作成時、TextBoxに対してCtrl-Aでテキストの全選択をしたい場合があります。

KeyDownイベントでSelectAll()させればよいのですが、対象となるTextBoxが多いときは、イベントハンドラを追加するのに手間がかかります。

このような場合は、下記のコードでForm上に存在する全てのTextBoxに対して、”Ctrl-Aで全選択”の機能をつけることができます。

private void Form1_Load( object sender, EventArgs e ) {
	// すべてのTextBoxへ、Ctrl-Aで全選択機能を付与する
    SetSelectAll( this );
}
 
private void SetSelectAll( Control target ) {
    foreach ( Control control in target.Controls ) {
        if ( control.HasChildren ) {
            // 子コントロールがある場合は再帰的に処理
            SetSelectAll( control );
        }
 
        // TextBox以外は何もしない
        if ( control is TextBox == false ) {
            continue;
        }
 
        // Ctrl-Aが押されたときに全選択させるハンドラを追加
        control.KeyDown += ( sender, e ) => {
            if ( e.Control && e.KeyCode == Keys.A ) {
                ( sender as TextBox ).SelectAll();
            }
        };
    }
}




作って覚えるVisual C#デスクトップアプリ入門

関連記事

One Response to “[C#]Form上の全TextBoxに対し、Ctrl-Aで全選択できるようにする方法”

  1. […] されているものをそのまま拝借した。 →Form上の全TextBoxに対し、Ctrl-Aで全選択できるようにする方法 […]

Visual StudioでFormを追加して継承する へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。