14歳の自分に衝撃の事実を告げてください

テキストボックスに、'1'って数字を入力したら、頭に'1'がつく入力候補がテキストボックスの下にリスト形式で表示され、
続けて、'2'と入力すれば、入力候補リスト内は頭に'12'がつく入力候補にかわる。
わかりやすく(?)言うと、例えば、VB6で変数の宣言をするとき Dim xxx As まで書くと入力候補のリストがカーソルの下に表示されますよね。
続けて、Dim xxx As S と入力すると、入力候補が 'S' から始まるものになりますよね。
まさに、コレがやりたいんです!!

何かいい方法、いいツールetc・・・、知っている方がいらっしゃったらぜひ教えてください。
ちなみに、開発はVB6で行います。
よろしくお願いします!!!

A 回答 (1件)

コンボボックスで似たような挙動をさせようと思えば、


やってやれんことは無いはず。
(あくまで方向性であって、VBの仕様でできないかも・・・)

候補データが配列に格納されているとして、
該当するデータを決定するには、Like演算子を使用します。
例)
コンボボックスのKeyUpイベントに置いてください。
Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
Dim dintJ As Integer
Dim dstrPool As String

'値を保存しておきます
dstrPool = Combo1.Text
'データを消去します
Combo1.Clear

'入力データを頭から含むデータのみを再セットします
For dintJ = 0 To 49
 If PoolData(dintJ) Like Trim$(dstrPool) & "*" Then
   Combo1.AddItem PoolData(dintJ)
 End If
Next

'リストを表示します。
SendKeys "{F4}"

end sub

ただし、これだけだとまずまともに動かんでしょう・・・^^;
最低でも、Enter等のKeyCodeは受け付けないようにしないといかんわね。
なんか挙動不審だし・・・・

今テストしてみたら、なぜか、SendKeyメソッドの影響で、
「NumLock」ボタンを押しつづけてる永久ループに入ってしまった・・(**)。

ちょっと、今日忙しいので、また後日にでもテスト結果とサンプルを乗せますね。

もしくは、どなたかフォローを・・・  (無責任な・・・(-"-))

あ、あとComboBoxの「▼」が気に入らん場合は、上にTextでも張って消しといてください。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
私もoribeyakiさんが書いて下さっているソースを真似して
いろいろやってみてはいるのですが、なかなかうまくいきません。
また、テスト結果とサンプルを載せてくださるということなので・・・。
本当にありがとうございます。助かります!
忙しくないとき、またよろしくお願いします。

お礼日時:2001/09/18 09:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報