キーボードオペレーションのプロパティで、
キーボードによる操作方法の一部をカスタマイズできます。
プロパティの一覧を以下に示します
デフォルトのキーボードオペレーションクラス(CKeyboardOperation)を継承し、
独自の拡張を行うことができます。
継承によって作成したオペレーションクラスは、
KeyboardOperationプロパティへ代入することでテーブルから利用されるようになります。
CKeyboardOperationクラスには、オーバーライド可能なメソッドがいくつかありますが、
その中でテーブルから直接呼ばれるのは、以下のメソッドになります。
メソッド | 説明 |
IsInputKey(key, table, defaultValue)
|
編集モードではない状態でのキー入力に対し、
KeyDownイベントを発生させるか
ProcessDialogKeyを実行するかを判断するために呼ばれます
このメソッドがTrueを返すとKeyDownイベントが発生し、
Falseを返すとProcessDialogKeyが呼ばれます
コントロールのデフォルトの動作にしたい場合は、
defaultValueを戻り地としてさい
|
ProcessDialogKey(key, table)
|
編集モードではない状態でのキー入力に対する前処理を行います
このキー入力の処理が完了した場合、Trueを返してください
|
LeaveEdit(direction, table)
|
編集モードから抜ける際に呼ばれます
directionには、編集モードから抜けた後にフォーカスを移動する方法を表す文字列が渡されます
|
デフォルトのLeaveEditメソッドは、directionとして、次の文字列を受理します。
これ以外の文字列を受け取った場合、フォーカス移動等は行われません。
メソッド | 説明 |
nextRow(table)
|
次の行へフォーカスを移動します
デフォルトでは、下カーソルキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
prevRow(table)
|
前の行へフォーカスを移動します
デフォルトでは、上カーソルキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
nextCol(table)
|
次の列へフォーカスを移動します
デフォルトでは、右カーソルキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
prevCol(table)
|
前の列へフォーカスを移動します
デフォルトでは、左カーソルキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
startCol(table)
|
先頭の列へフォーカスを移動します
デフォルトでは、HOMEキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
endCol(table)
|
最後の列へフォーカスを移動します
デフォルトでは、ENDキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
pageDown(table)
|
1ページ分下へスクロールします
デフォルトでは、PgDnキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
pageUp(table)
|
1ページ分上へスクロールします
デフォルトでは、PgUpキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
tabEnter(table, behavior)
|
behaviorで渡された、次へ進む動作を行います
デフォルトでは、TabキーまたはEnterキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
tabEnterPrev(table, behavior)
|
behaviorで渡された、前へ戻る動作を行います
デフォルトでは、Shiftキーを押しながらTabキーまたはEnterキーが押されたときに呼ばれます
このメソッドはオーバーライド可能です
|
doNextField(table, editableOnly)
|
タブオーダ順で次のフィールドへフォーカスを移動します
editableOnlyにTrueを渡すと、次の編集可能なフィールドへフォーカスを移動します
このメソッドはオーバーライドできません
代わりにnextFieldメソッドをオーバーライドしてください
|
doPrevField(table, editableOnly)
|
タブオーダ順で前のフィールドへフォーカスを移動します
editableOnlyにTrueを渡すと、前の編集可能なフィールドへフォーカスを移動します
このメソッドはオーバーライドできません
代わりにprevFieldメソッドをオーバーライドしてください
|
nextField(table, editableOnly)
|
タブオーダ順で次のフィールドへフォーカスを移動します
このメソッドはdoNextFieldメソッドからのみ呼ばれます
他の場所からは呼ばないでください
このメソッドはオーバーライド可能です
|
prevField(table, editableOnly)
|
タブオーダ順で前のフィールドへフォーカスを移動します
このメソッドはdoPrevFieldメソッドからのみ呼ばれます
他の場所からは呼ばないでください
このメソッドはオーバーライド可能です
|
nextRecord(table)
|
次のレコードへフォーカスを移動します
このメソッドはオーバーライド可能です
|
prevRecord(table)
|
前のレコードへフォーカスを移動します
このメソッドはオーバーライド可能です
|
doNextControl(table)
|
テーブルを抜け、次のコントロールへフォーカスを移動します
このメソッドはオーバーライドできません
代わりにnextControlメソッドをオーバーライドしてください
|
doPrevControl(table)
|
テーブルを抜け、前のコントロールへフォーカスを移動します
このメソッドはオーバーライドできません
代わりにnextControlメソッドをオーバーライドしてください
|
nextControl(table)
|
テーブルを抜け、次のコントロールへフォーカスを移動します
このメソッドは、doPrevControlからのみ呼ばれます
他の場所からは呼ばないでください
このメソッドはオーバーライド可能です
|
prevControl(table)
|
テーブルを抜け、前のコントロールへフォーカスを移動します
このメソッドは、doPrevControlからのみ呼ばれます
他の場所からは呼ばないでください
このメソッドはオーバーライド可能です
|
実際にキーボードオペレーションの拡張を行う際は、
CKeyboardOperationのソースコードを参考にしてください。