KeyPreview
、ProcessKeyEventArgs
、またはその他のおかげで、ESCキーが押されるとフォームが閉じますProcessCmdKey
。しかし、ESCが押されたときに非常に関連性のあることを行うフォームにコントロールがあり(それ自体が非表示になります)、それが発生したときにフォームを閉じてはなりません。
コントロールはKeyDown
イベントを使用してSuppressKeyPress
フラグを true に設定しますが、これは前述のフォーム キー プレビューの後に発生するため、効果がありません。
ある種の KeyPostview はありますか?
コントロールにキー ヒットの関連する使用法がある場合、フォームを閉じないようにするにはどうすればよいですか?
編集: ESC を処理するコントロールは、手作りの ListView に埋め込まれたテキスト ボックスです。ユーザーがセルをクリックするとテキストボックスが表示され、編集が有効になります。新しいテキストを検証するには、ENTER が便利です (これは、他の何かにフォーカスを与えるため、既に機能しています)。編集をキャンセルするには、ESC が最も自然なようです。