キーボードオペレーションのプロパティで、
キーボードによる操作方法の一部をカスタマイズできます。
プロパティの一覧を以下に示します
プロパティ | 説明 |
EnterBehavior
|
Enterキーが押された時の動作を設定・取得します
NONE:何もしません
NEXT_FIELD:次のフィールドへフォーカス移動します
NEXT_EDITABLE_FIELD:次の編集可能フィールドへフォーカス移動します
NEXT_RECORD:次のレコードへフォーカス移動します
NEXT_CONTROL:テーブルを抜け、次のコントロールへフォーカスを移します
デフォルト値はNEXT_RECORDです
|
TabBehavior
|
Tabキーが押された時の動作を設定・取得します
とり得る値はEnterBehaviorと同じです
デフォルト値はNEXT_FIELDです
|
LeaveFromLastField
|
最後のフィールドから、次のフィールドへフォーカス移動が要求された時に、
テーブルを抜けて次のコントロールへフォーカス移動するかを設定・取得します
デフォルト値はTrueです
|
StartEditKey
|
編集モードを開始するキーを設定・取得します
デフォルト値はF2です
|
ClearByDelete
|
Deleteキーでフィールドの値をクリアするかどうかを設定・取得します
デフォルトはTrueです
|
ClipboardCut
|
Ctrl+Xで切り取りを行うかを設定・取得します
デフォルトはTrueです
|
ClipboardCopy
|
Ctrl+Cでコピーを行うかを設定・取得します
デフォルトはTrueです
|
ClipboardPaste
|
Ctrl+Vで貼り付けを行うかを設定・取得します
デフォルトはTrueです
|
Undo
|
Ctrl+Zでアンドゥを行うかを設定・取得します
デフォルトはTrueです
|
Redo
|
Ctrl+Yでリドゥを行うかを設定・取得します
デフォルトはTrueです
|
ClipboardCut、ClipboardCopy、ClipboardPasteプロパティを一括で設定する場合は、
ClipboardEnabledプロパティを用いると便利です。
デフォルトのキーボードオペレーションクラス(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からのみ呼ばれます
他の場所からは呼ばないでください
このメソッドはオーバーライド可能です
|
rangeUp(table)
|
選択範囲を上に広げます
このメソッドはオーバーライド可能です
|
rangeDown(table)
|
選択範囲を下に広げます
このメソッドはオーバーライド可能です
|
rangeLeft(table)
|
選択範囲を左に広げます
このメソッドはオーバーライド可能です
|
rangeRight(table)
|
選択範囲を右に広げます
このメソッドはオーバーライド可能です
|
rangeStartCol(table)
|
選択範囲を左端の列まで広げます
このメソッドはオーバーライド可能です
|
rangeEndCol(table)
|
選択範囲を右端の列まで広げます
このメソッドはオーバーライド可能です
|
rangePageUp(table)
|
選択範囲を1ページ分上に広げます
このメソッドはオーバーライド可能です
|
rangePageDown(table)
|
選択範囲を1ページ分下に広げます
このメソッドはオーバーライド可能です
|
rangeAll(table)
|
Contentとその子コンテント全体を選択範囲とします
このメソッドはオーバーライド可能です
|
実際にキーボードオペレーションの拡張を行う際は、
CKeyboardOperationのソースコードを参考にしてください。