
制御系のソフトウェアのフォーム画面では、未だにファンクションキーを押下して、処理を行っている。
例えば、F2は検索、F12は終了など。
ここでは、ファンクションキーの押下を処理する方法を記述します。
「KeyPreview」イベントの設定
あらかじめ、Windowsフォームのプロパティ「KeyPreview」をTrueに設定しておきましょう。
(デザイナで設定してもいいし、Form_Loadイベントで「this.KeyPreview = true;」と書いてもいいです)
この設定をすると、他のコントロール(テキストボックス)より先に、キーの押下情報をフォームが受け取ることになります。
ファンクションキーを押しても、イベントが走らない!!というのは、このプロパティの設定を忘れている場合が多いです。
ファンクションキー押下を処理するコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
private void Form1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.F1: // 検索 if (btnSearch.Enabled == true) btnSearch.PerformClick(); break; case Keys.F2: btnSearch.PerformClick(); break; case Keys.F3: break; case Keys.F4: break; case Keys.F5: break; case Keys.F6: break; case Keys.F10: break; case Keys.F11: break; case Keys.F12: break; } } |
このソースコードでは、F1キーは検索ボタンが活性時(クリックできる状態)で、検索ボタンのクリック時の処理を呼び出します。
F2キーは無条件で、検索ボタンのクリック時の処理を呼び出します。「PerformClick()」メソッドは、ボタンのクリック時の処理を呼び出します。
コメント
この記事へのトラックバックはありません。
この記事へのコメントはありません。