上へ FreeGridの構成 データソース セル更新
| |
技術解説 |
セル更新 |
最終更新日:2007/04/26
新規 |
●概要
セル更新は、エンドユーザが、セルの内容を書き換える処理であるが、文字入力を直接処理するのはかなりむづかしくなるので、ここは、テキストボックスを利用している。
●原理
入力モードになったら、そのセルを隠しテキストボックスに置換え、ユーザは、そのテキストボックスに入力する。この場合の利点は、
- 複雑なキーボード入力処理が不要。
- IME制御が簡単。
- コピーアンドペーストや文字列のドラッグアンドドロップがコード無しで利用できる。
不利な点は、
- 若干操作性に違和感が残る。
- 入力中にスクロールなどがあると、テキストボックスも移動させるコードが必要となり、この動作が若干トロイ。
である。
●方法
- 編集可能モードにて、エンドユーザがあるセルを選択し、スペースまたはEnterキーを押すか、ダブルクリックすれば、セル更新モードとする。
- この時、入力モードになる旨をイベント(EnterEdit)で知らせる。良ければIMEモードを指示し、許可する。不許可であれば、終了する。
- そのセルに内部の隠しテキストボックスを被せ、そのテキストボックスの入力モードにする。
- 入力完了(Enterキー)で、今度は、入力された文字列と共に、BeforeEditイベントで知らせる。アプリ側は、OKであれば、そのデータにあった型にし、Objectとして返す。NGならCan
= True にして返す。FreeGridでは、OKであれば、内部配列を返されたObjectにて更新する。
入力完了は、Enterのみとする。IMEが日本語モードの場合は、変換開始のEnterを無視する。
|