0 comments
0 trackbacks

C#でキー押下時のイベントについて,Ctrl+Aでリストボックスの内容を全選択してみたいです(*´-`*)ノ

■まずはキーを押した時にイベントを起こしたいです

コントロールにKeyDownというイベントとPreviewKeyDownというイベントがあります。

キーダウン時のイベントはこの2つのようです。

キーが押下されると,そのときフォーカスれていたコントロールを格納しているコントロールが,より親のコントロールから順にキーイベントを発生してきますが,今回はリストボックスのみに焦点をおいてみました。

なので使うイベントはPrebirewKeyDownイベントにします。

■次にリストボックスを全選択していきます

SelectAll関数という便利なものがありませんでした。



■方法1~3について
方法1,2は数が多いと時間がかかってしまいます。
その上ちょっと不格好な処理になってしまいます。

そのため方法3が一番見た目的によかったです。

手動のそうさ「一番上の項目をクリック,その後Shiftを押しながら一番下の項目をクリック」を再現しています。
キーストロークを送信するSendKeysクラスを使用し,一番上をクリックはHomeキーで代用し,一番下をクリックはEndキーで代用してみました。

■PrevirewKeyDownとKeyDownの違いについて
・PrevirewKeyDownでは、IMEがOnの状態で押されたキーも確認できます。

ちなみにWindowフォーム→リストボックスの順にキーダウンのイベントは発生します。
スポンサーサイト
 ↑↑↑↑↑↑よければクリックをお願いします↓↓↓↓↓↓