MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > キーボード操作 > キーボード操作の概要 |
製品では、Windowsによるキー入力の処理をもとに、コントロールによるキー入力の処理を実装しています。System.Windows.Forms.Controlクラスで提供される、キー入力を処理するためのメソッドおよびイベントは次のとおりです。
コントロールにフォーカスがある場合:
コントロールまたは子コントロールにフォーカスがある場合:
製品では、これらの.NET Frameworkで提供されるメソッドおよびイベントに加え、「既定の入力マップ」で説明する入力マップを提供しています。入力マップは、キーボードによるコントロールの動作を記述したテーブル形式の定義です。アプリケーションはこれを使用することで、キーボードによるコントロールの動作を照会できます。入力マップとは、キー入力と、関連あるアクションのコレクションです。
製品は、コントロールにフォーカスがあるときに発生したキー入力を処理するWhenFocused入力マップと、コントロールまたは子コントロールにフォーカスがあるときに発生したキー入力を処理するWhenAncestorOfFocused入力マップを提供します。
WhenFocused入力マップは、FpSpreadクラスのIsInputKey、IsInputChar、OnKeyDown、OnKeyPressおよびOnKeyUpメソッドの実装に使用します。これらのメソッドは、KeyDown、KeyPress、およびKeyUpイベントを発生させます。
WhenAncestorOfFocused入力マップは、FpSpreadクラスのProcessDialogKeyおよびProcessDialogCharメソッドの実装に使用されます。これらのメソッドは、イベントを発生させません。
製品で処理の対象となるキー入力は、ほとんどの場合、コントロールまたは子コントロールがフォーカスをもつ場合に処理される必要があります。したがって、コントロールのキーボード動作のほとんどは、WhenAncestorOfFocus入力マップに記述されています。
キーボード操作がProcessDialogKeyおよびProcessDialogCharメソッドによって処理される場合、イベントは何も発生しません。これは、.NET Framework標準のDataGridなど、ほとんどのグリッド形式のコントロールで同様です。 |
コントロールには、複数の操作モード(詳細については「操作モード」を参照)があります。
操作モードごとに、それぞれ異なるキーボード動作が必要となります。そのため、製品では操作モードごとに、WhenFocusedおよびWhenAncestorOfFocused入力マップが用意されています。これらの入力マップについて理解を深めるには「キーボードマップに関する要素」を、操作モードごとに定義された既定の入力マップは「既定の入力マップ」を参照してください。