コマンドボタンをクリックしたときの処理を、キーボードの矢印キーを押したときにも行いたいのですがうまくいきません。
フォーカスがそのコマンドボタンにあるので、コマンドボタンのKEYDOWNイベントでKeycodeを見て矢印キーだったらコマンドボタンクリック時のイベントへ流そうと思っていますが、矢印キーを押してもKeydownイベントが発生せずに隣のボタンにフォーカスが移ってしまいます。キーボードの矢印キーはKeydownイベントに流れないのでしょうか?他の方法でも結構なので解決方法を教えてください。ちなみにVB超初心者です。よろしくお願いします。
一部のコントロールでは実行できないようです^^;
(リッチテキストボックスでは、キーコードを使って文字そう入もできるけど、テキストボックスでは失敗するとか)
コマンドボタンがそれかどうかはわかりませんけど。
あ、そうそう、そうじゃなくて、ボタンのイベントに移らないのは、
"フォーカスを持ってるのがボタンのとき、十字ボタンで移動する"というのが、
Windowsの仕様だからです、たぶん。
これを回避するには、フォームのプロパティで、Keypreviewのないようを変えてみてください。
先にイベントが実行されるようになるはずです。
一番上の部分、ちょっと間違ってましたね^^;
KeyDownイベントで、入力をキャンセルしたり、違う文字を入力したりするのは、
ふつうのコントロールはサポートしていません。(RichTextBoxのみ可)
他のでこういうコトをするには、KeyPressイベントを使います。
↓と↑のことも、両方試してみるといいです。
ツイート | ![]() |