掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSFlexGridで複数セルの選択をするには? (ID:84931)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>エクセルのようにセルに直接入力させる場合 >一般的には、セルに入力するときだけTextBoxを表示させているようですね。 参考になるかわかりませんが、自分は次のようにしています。 (参考書を見ながら作っただけなのですが…) とりあえず全角文字もうまく入力できています。 1.グリッドはピクチャボックスの中に配置する。 グリッドにIMEModeがないため、その対策として行っている。 そして、グリッドのRowColChangeイベントに、英数列にカーソルが来たら ピクチャボックスのIMEModeを2に、日本語列に来たら4にする。 ピクチャにフォーカスが来たらグリッドにフォーカスを移るようにする。 2.セル入力用テキストボックスを表示するイベントを作成する。 (「Private Sub FGrid_Edit(KeyAscii As Integer)」という名にしています) 押されたKeyAsciiを受け取り、Trim(Chr(KeyAscii))をテキストボックスに表示し、 テキストボックスを所定の場所に移動・ぴったり表示させる、というものです。 ちなみにテキストボックスのIMEModeはピクチャボックスのIMEModeにします。 3.半角英数を入力する場合、グリッドのKeyPressイベントで捕まえる。 KeyPressイベントには全角文字入力の場合はキャンセルする文を書く。 半角英数なら FGrid_Edit KeyAscii 全角なら Exit Sub とします。 4.全角文字を入力する際は、グリッドのKeyDownイベントで捕まえる。 KeyCode > 127の場合だけ動くようにし、それ以外はExit Sub 全角文字の際は FGrid_Edit vbKeySpace とし、空白文字を送ります。 全角文字を入力し、テキストボックスを表示し、フォーカスを移した時点で 変換前の文字がテキストボックスに表示されます。 入力が終わって確定させた段階でテキストボックスの表示を消します。 今のところこれでうまくいっています。 テキストボックスを常時表示させるとグリッドのスクロールがうまくいかない 場合があるので、意地で消しています。 すみません。文章が下手でわかりづらいかも…
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.