RecordGridのセルフォーカスをEnterキーで移動するにはRecordGridCellのカスタマイズが必要です。
以下のサンプルソースをご覧ください。
{curl 6.0 applet} {curl-file-attributes character-encoding = “shift-jis”}
{define-class public EnterKeyCell {inherits StandardStringCell}
{constructor public {default} {construct-super} }
{method public {create-editor}:TextField let editor:TextField = {super.create-editor}
||セル上で操作するテキストフィールドに対して、 ||Enterキーのイベントを追加する。 {editor.add-event-handler {on e:KeyPress at tf:TextField do {if e.value == KeyPressValue.enter then {self.grid.ui.traverse forward? = not e.shift?} } } }
{return editor} } }
{let people:RecordSet = {RecordSet {RecordFields {RecordField “First”, domain = String}, {RecordField “Last”, domain = String}, {RecordField “Age”, domain = int} }, {RecordData First = “John”, Last = “Smith”, Age = 25}, {RecordData First = “Jane”, Last = “Smith”, Age = 29}, {RecordData First = “Jane”, Last = “Jones”, Age = 28} } } {value {RecordGrid record-source = people, height = 3cm, cell-spec = EnterKeyCell } }
|
このサンプルを実行すると、以下のような実行結果が得られます。
サンプルでEnterキーを押下すると、グリッド上のセルフォーカスが移動します。