FarPoint.Win.Spread アセンブリ > FarPoint.Win.Spread 名前空間 : InputMap クラス |
'Declaration
Public Class InputMap Implements FarPoint.Win.ISerializeSupport
public class InputMap : FarPoint.Win.ISerializeSupport
入力マップは、キーボード操作がSPREADによってどのように解釈されるかを定義します。マップは複数の定義が集められたもので、個々の定義はキーまたはキーの組み合わせとそれに関連付けられたアクションのペアから成ります。[Home]キーを押したときにアクティブセルが行の最初のセルに移動するのは、デフォルトの定義の一例です。
入力マップの動作は次の2つの要素に基づきます。
詳細については、「キーボード操作」を参照してください。
入力マップモード
最初の要素は、キーまたはキーの組み合わせを受け取る対象です。.NETでは、キー操作の処理は事前処理(プリプロセス)フェーズと通常処理フェーズの2つのフェーズで処理されます。SPREADのキー操作処理はほとんどの場合、事前処理フェーズ(WhenAncestorOfFocused入力マップモードに対応)で処理されます(InputMapMode列挙体の設定を参照)。事前処理フェーズでは、キー操作はIsInputChar、IsInputKey、ProcessDialogChar、ProcessDialogKeyの各メソッドで処理されます。
通常処理フェーズはWhenFocused入力マップモードに対応します。通常処理フェーズでは、キー操作はOnKeyDown、OnKeyPress、OnKeyUpの各メソッドで処理されます(これらのメソッドはそれぞれKeyDown、KeyPress、KeyUpの各イベントを発生させます)。
典型的なSPREADでは、コントロールの操作中に発生するほとんどのインタラクションは、WhenAncestorOfFocused入力マップの一部として発生します。アクティブセルの移動やセル範囲の選択などのアクションは、このマップの一部です。たとえば[Tab]キーを押すと、セルが編集モードであっても、アクティブセルが移動します。それに対して、一部のキーは編集モードのセルがない場合(コントロールにフォーカスはあるが、セルエディタはない場合)のみマッピングされます。たとえば、編集モードのセルがあるときに[=]キーを押してもアクションは実行されません。編集モードのセルがないときに[=]キーを押すと、アクティブセルで数式の編集が開始されます。
キー操作を扱う場合は、キー操作の事前処理(WhenAncestorOfFocused)と通常処理(WhenFocused)の違いに注意してください。
操作モード
入力マップに影響する2つ目の要素は、シートの操作モードです。それぞれのキーは操作モードによって異なるデフォルトマップを持ちます。たとえば、操作モードが読み取り専用の場合はアクティブセルが存在しないため、アクティブセルの移動にデフォルトでマッピングされたキーはありません。
操作モードの詳細については、「操作モードと選択ポリシー」、およびOperationModeプロパティを参照してください。
System.Object
FarPoint.Win.Spread.InputMap