この項では、UTableが発生させるイベントについて説明します。
なお、一部のイベントには、フィールドにも対応するイベントが存在します。
UTableのイベントと、対応するフィールドのイベントでは、
フィールドのイベントのほうが先に発生します。
イベント | 説明 |
RecordAdded(record)
|
recordが追加されると発生します
|
RecordMoved(record)
|
recordが移動されると発生します
|
RecordRemoved(record)
|
recordが削除されると発生します
|
FieldValidating(field, e)
[ Validating(field, e) ]
|
fieldの値を検証する必要があるときに発生します
|
FieldValidated(field)
[ Validated(field) ]
|
fieldの値が検証され、妥当と判断された時に発生します
|
ContentValidated(content, key)
|
content内のkeyに対応するフィールドでValidatedイベントが発生した時に発生します
このイベントの発生タイミングはContentValidatedBlockメソッドで制御することができます
|
FieldValueChanged(field)
[ ValueChanged(field) ]
|
fieldの値が変更されると発生します
厳密には、fieldに対してコミットが行われると発生します
|
EditorValueChanged(field)
[ EditorValueChanged(field) ]
|
エディタ上で値が変更されると発生します
|
FieldEntering(field, cancel)
[ Entering(field, cancel) ]
|
fieldがフォーカスを得ようとした時に発生します
イベントハンドラ内でcancelをTrueとすると、
fieldがフォーカスを得ることを禁止できます
|
FieldEnter(field)
[ Enter(field) ]
|
fieldがフォーカスを得た時に発生します
|
RecordEnter(record)
|
record内のフィールドがフォーカスを得た時に発生します
record内だけでフォーカス移動が行われた場合は発生しません
|
FieldLeave(field)
[ Leave(field) ]
|
fieldがフォーカスを失うと発生します
|
FieldMouseDown(field, location, e)
[ MouseDown(field, location, e) ]
|
field上でマウスのボタンが押されると発生します
locationにはfield内のボタンが押された座標が渡されます
|
FieldMouseUp(field, location, e)
[ MouseUp(field, location, e) ]
|
field上でマウスのボタンが放されると発生します
locationにはfield内のボタンが放された座標が渡されます
|
FieldMouseMove(field, location, e)
[ MouseMove(field, location, e) ]
|
field上でマウスカーソルが移動すると発生します
locationにはfield内のカーソルの座標が渡されます
|
FieldClick(field, location, e)
[ Click(field, location, e) ]
|
field上でマウスがクリックされると発生します
locationにはfield内のクリックされた座標が渡されます
|
FieldDoubleClick(field, location, e)
[ DoubleClick(field, location, e) ]
|
field上でマウスがダブルクリックされると発生します
locationにはfield内のダブルクリックされた座標が渡されます
|
FieldKeyDown(field, e)
[ KeyDown(field, e) ]
|
field上でキーボードのキーが押されると発生します
|
FieldKeyUp(field, e)
[ KeyUp(field, e) ]
|
field上でキーボードのキーが放されると発生します
|
FieldSelected(field, handled)
[ Selected(field, handled) ]
|
field上でEnterキーが押されるか、ダブルクリックされると発生します
handledをTrueにすることで、デフォルトの操作を禁止できます
例えば、ダブルクリック時には編集可能フィールドであれば
通常は編集モードが開始されますが、それが禁止されます
さらに、Enterキーが押された時のキーボードオペレーションの動作も
同様に禁止されます
|
FieldButtonClick(field)
[ ButtonClick(field) ]
|
fieldのボタンがクリックされると発生します
|
EditStarting(field, editable)
[ EditStarting(field, editable) ]
|
field上で編集モードが開始されようとすると発生します
editableをALLOWとすると、編集モードは開始されます
DISABLEとすると、編集モードは開始されません
|
EditStart(field, editor)
[ EditStart(field, editor) ]
|
field上で編集モードが開始されると発生します
|
EditFinished(field)
[ EditFinished(field) ]
|
field上で編集モードが終了されると発生します
|
FocusNextField(field, forward, handled)
|
fieldから次(または前)のフィールドへフォーカスが移ろうとした時に発生します
forwardには次への移動ならばTrue、前への移動ならばFalseが渡されます
handledをTrueとすることで、デフォルトの動作を禁止できます
|
FocusNextControl(field, forward, handled)
|
テーブルから次(または前)のコントロールへフォーカスが移ろうとした時に発生します
forwardには次への移動ならばTrue、前への移動ならばFalseが渡されます
handledをTrueとすることで、デフォルトの動作を禁止できます
|
Sorted(content, key)
|
contentでソートが行われると発生します
|
InitializeEditor(field, editor)
|
editorが生成されると発生します
このイベントはeditorにフィールドの値などが設定される前の時点で発生します
editorのプロパティをカスタマイズするなどの目的に利用して下さい
|
LayoutUpdating(table)
|
レイアウトの変更(レコードや行列サイズの操作など)が行われた後に
レンダリングが行われる時点で発生します
|
DecideScrollRect(field, rect)
|
fieldがフォーカスを得た時に、
スクロールによって表示されるべき領域を決定する時に発生します
|
UndoFinished(table, ucs)
|
Undoが行われた後に発生します。
|
RedoFinished(table, ucs)
|
Redoが行われた後に発生します。
|
(Field)Validatingイベントと(Field)Validatedイベント、そしてContentValidatedイベントは、
ユーザ操作によってフィールドの値が変更される際に発生します。
具体的には、その発生タイミングは以下の4つの場合です。
まず発生するのは(Field)Validatingイベントで、
そのイベントハンドラ内で入力された値が妥当かを検証し、
必要に応じてフィールドにその値が代入されることをキャンセルできます。
(Field)Validatingイベントでキャンセルされなかった場合に限り、
(Field)ValidatedイベントとContentValidatedイベントが発生します。
(Field)Validatedイベントはフィールド毎に発生するイベントであるのに対して、
ContentValidatedイベントはコンテントごとに発生するという意味合いを持ちます。
つまり、複数のフィールドの内容を同時に書き換えるといった操作を行った場合、
(Field)Validatedイベントはフィールドの数だけ発生するのに対し、
ContentValidatedイベントはコンテントのキーごとに1度だけ発生します。
これで、フィールドをいくつ編集しても、
ContentValidatedイベントの発生はUsing句を抜ける際にキーごとに1度だけ行われるようになります。
なお、この仕組みは、ClipboardPasteメソッド内で利用されています。