OnPreviewKeyDownメソッドにていくつか質問があります
Enterでフォーカス移動やファンクション割り当てなど、親ウィンドウで一括でキー処理したい場合など、親ウィンドウ(Form)にOnKeyDownメソッドを追加して、そのメソッド内で押されたKeyを判断し、フォーカス移動の処理を行っています
※特殊キーを判断する必要がないので、今のところOnKeyDownで十分です
ですが、仮に「特殊キー」を親ウィンドウで一括で判断したい場合には、どのようにすればよいのか分かりません
最初は親ウィンドウにOnPreviewKeyDownメソッドを追加して判断すれば出来ると思っていたのですが、親ウィンドウのOnPreviewKeyDownには何のキーを押してもメッセージが飛んできていません
親ウィンドウに配置されているコントロール(TextBoxなど)のOnPreviewKeyDownメソッドで、特殊キーを通常のキーとして処理(IsInputKeyをtrue)してやることで、親ウィンドウのOnKeyDownメソッドにて処理することはわかるのですが、すべてのコントロールにこれを設定するのは面倒です
親ウィンドウのOnPreviewKeyDownメソッドは何の用途で使うものなのでしょうか?そもそも何のキーを押しても親ウィンドウのOnPreviewKeyDownメソッドに飛んでこないのは仕様なんでしょうか?
自前で親ウィンドウのプリプロセスメソッド(ProcessCmdKeyやIsInputKey)をオーバーライドすれば、親ウィンドウでも特殊キーを取得できることは確認しましたが、そもそもこの方法が標準的な方法なのでしょうか?
.net framework2.0まではPreviewKeyDownが存在していなかったため、プリプロセスメソッドを自分でオーバーライドする必要がありましたが、2.0以降であっても親ウィンドウではオーバーライドするしか方法がないのでしょうか?
あと、OnPreviewKeyDownメソッドはどこから呼ばれているメソッドなのでしょうか?
OnKeyDownなどのメソッドは、PrecessKeyEventArgsメソッドから呼ばれ、その呼び元のメソッド(プリプロセスやキーイベントプロセス)で親コントロールのメソッドを呼び出すため、親コントロールでもOnKeyDownが発生することはわかっているのですが、OnPreviewKeyDownメソッドだけは何のメソッドから呼ばれるのか調べてもわからず、親ウィンドウのOnPreviewKeyDownを呼び出す方法があるのか?ないのか?の調査ができませんでした
簡潔な説明で分かりにくいかと思いますが、どなたかご回答よろしくお願いいたします