C# Winforms では、上矢印キーと下矢印キーの KeyDown イベントをキャプチャしようとしています。したがって、私は次のことを行いました:
- フォームの KeyPreview プロパティを true に設定します
- フォームの「OnKeyDown」メソッドのオーバーライド
とにかく、メソッドは、たとえば左/右矢印キーに対して呼び出されますが、上/下キーに対して呼び出されることはありません。次に、テストのために、フォームの「OnKeyUp」メソッドもオーバーライドしようとしました。奇妙なことは、'OnKeyUp' メソッドが上/下矢印に対しても呼び出されるようになったことです。「ProcessCmdKey」もオーバーライドしようとしましたが、同じ結果になりました。上/下矢印では呼び出されません。
KeyUp イベントを使用できない理由は、キーがしばらく押されているかどうかを認識する必要があるため、イベントを複数回呼び出す必要があるためです。これは KeyUp には当てはまりません。
ここで何が問題になる可能性があるかについて何か提案はありますか?