- ベストアンサー
VBでの文字列操作 難技
VBでオートコンプリートみたいな機能を作ることは可能でしょうか? (例) URLを入力するテキストボックス欄がある。 http://www.a と入力するとリスト画面が表示され あらかじめ登録しておいたaに関連するアドレスが自動的に 表示される http://www.ab とすると上記と同様にabから始る アドレスがリストボックスから自動的に表示される
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
難しいより、面倒ですね。 (1)プログラムの中の配列やデータベースで候補文字列を持っておく。文字列順にソートしておけば、2分法などが使えますので、比較回数は少なく出来ます。 最悪(容易)では、総なめ(全件比較)が必要です。 1文字入力毎に毎回データベースの検索は、レスポンスタイムの点で大丈夫かテストし判断する。 (2)新しく文字列が加わると、配列やデータベースに加えておく。 (3)比較のキッカケは、テキストボックスのTextが 変るごとに捉えられる、Changeイベントなどを使う。 (4)比較は入力文字列の長さに合わせて、表の方の文字列のLeft(関数)で一部を取り、入力文字列と比較する。 複数見つかる時の処理がややこしくなる。 (5)見つかれば、表の方の文字列で置換え、先頭から の文字列部分をSelstart、Sellengthなどで、色を変えておく。 http://www.bcap.co.jp/hanafusa/VBHLP/ibe_Cursors.htm
- lucky-jam
- ベストアンサー率16% (3/18)
リスト画面とは該当データが複数ある場合にリストを表示するということで いいのでしょうか? テキストボックスに使用するならChangeイベントで 文字が入力されるたびにリストと比較して・・・、という形はどうですか? InStr関数などで文字列が含まれているか判断するなんて方法はどうでしょうか。 あまりスマートな方法とはいえないかもしれませんが。
- todo36
- ベストアンサー率58% (728/1234)
googleで検索してみては? 検索キー:VB オートコンプリート