OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

入力候補を表示させるには・・・?

  • 困ってます
  • 質問No.134168
  • 閲覧数533
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 58% (21/36)

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

何かいい方法、いいツールetc・・・、知っている方がいらっしゃったらぜひ教えてください。
ちなみに、開発はVB6で行います。
よろしくお願いします!!!
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル8

ベストアンサー率 45% (18/40)

コンボボックスで似たような挙動をさせようと思えば、 やってやれんことは無いはず。 (あくまで方向性であって、VBの仕様でできないかも・・・) 候補データが配列に格納されているとして、 該当するデータを決定するには、Like演算子を使用します。 例) コンボボックスのKeyUpイベントに置いてください。 Private Sub Combo1_KeyUp(KeyCode As Integer ...続きを読む
コンボボックスで似たような挙動をさせようと思えば、
やってやれんことは無いはず。
(あくまで方向性であって、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でも張って消しといてください。
お礼コメント
reira

お礼率 58% (21/36)

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


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ