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#デスクトップアプリ入門
関連記事
[…] されているものをそのまま拝借した。 →Form上の全TextBoxに対し、Ctrl-Aで全選択できるようにする方法 […]