ホーム ] コンポーネント開発 ] グリッドコントロール ] レギュラープレーヤ ] 数学関数表示コントロール ]

上へ
FreeGridの構成
データソース
セル更新

技術解説

セル更新

最終更新日:2007/04/26  新規

●概要

 セル更新は、エンドユーザが、セルの内容を書き換える処理であるが、文字入力を直接処理するのはかなりむづかしくなるので、ここは、テキストボックスを利用している。

●原理

 入力モードになったら、そのセルを隠しテキストボックスに置換え、ユーザは、そのテキストボックスに入力する。この場合の利点は、

  • 複雑なキーボード入力処理が不要。
  • IME制御が簡単。
  • コピーアンドペーストや文字列のドラッグアンドドロップがコード無しで利用できる。

 不利な点は、

  • 若干操作性に違和感が残る。
  • 入力中にスクロールなどがあると、テキストボックスも移動させるコードが必要となり、この動作が若干トロイ。

である。

●方法

  • 編集可能モードにて、エンドユーザがあるセルを選択し、スペースまたはEnterキーを押すか、ダブルクリックすれば、セル更新モードとする。
  • この時、入力モードになる旨をイベント(EnterEdit)で知らせる。良ければIMEモードを指示し、許可する。不許可であれば、終了する。
  • そのセルに内部の隠しテキストボックスを被せ、そのテキストボックスの入力モードにする。
  • 入力完了(Enterキー)で、今度は、入力された文字列と共に、BeforeEditイベントで知らせる。アプリ側は、OKであれば、そのデータにあった型にし、Objectとして返す。NGならCan = True にして返す。FreeGridでは、OKであれば、内部配列を返されたObjectにて更新する。
    入力完了は、Enterのみとする。IMEが日本語モードの場合は、変換開始のEnterを無視する。