1.フォームに貼り付けるコントロールと初期値 |
まず、最低必要なものは、編集用のテキストボックスです。あらかじめ非表示にしておきます。そして、編集する場所に合わせて枠線のスタイルなどを変えます。右の図を参考にしてください。 このとき注意しておくことは、貼り付ける先のコンテナです。編集機能を付けたいコントロール(例えばピクチャーボックスなど)の内部にテキストボックスを貼り付けるときと、コントロールに関係なく貼り付けるときがあります。 |
2.編集の開始 |
編集開始の例です。ここでは、フレキシブルグリッドの場合で行います。 Sub StartEdit() ' テキストボックスを移動させます Text1.Move Flex1.CellLeft, Flex1.CellTop, Flex1.CellWidth, Flex.CellHeight ' テキストボックスにセルのテキストを代入します Text1.Text = Flex1.Text Text1.Visible = True Text1.ZOrder 0 Text1.SetFocus End Sub やっていることは単純です。テキストボックスの位置を指定して、内容を設定して表示するだけです。 表示する前に、テキストボックスのフォントを変えたりしたりすることも簡単です。 |
3.編集の終了 |
編集の終了の条件として、 1、テキストボックスがフォーカスを失う 2、キーボードからのEnter, Escの入力 3、Tabキー がありますが、これらのコードの実装の仕方について書きます。 Sub Text1_LostFocus() ' テキストボックスがフォーカスを失う ' テキストボックスを非表示に Text1.Visible = False ' 場合によりますが、セルにテキストボックスに反映させる(させないのなら削るがよし) Flex1.Text = Text1.Text End Sub Sub Text1_KeyPress(KeyAscii As Integer) ' 入力されたキーによって処理を変えます。 End Sub Tabキーの処理は、LostFocus処理と同じとみなしても構わないでしょう。 こんなところです。この処理は、フレキシブルグリッドに限らずいろいろなところで使うことができる (EditListコントロールや現在制作中PropertyListBoxでも使用)のでいろいろな応用をしてみてください。 |