• 締切済み

リストボックス内を検索(VB6.0)

お世話になっています。 リストボックス内に表示したデータを検索するプログラムを作っています。 Private Sub txtName_Change()  Dim i As Integer  For i = 0 To List1.ListCount - 1   If List1.List(i) Like "*" & txtName.Text & "*" Then    List1.ListIndex = i    Exit For   End If  Next i End Sub という感じで、あいまい検索をしています。 検索結果は上手く取得できたのですが、 例えばテキストボックスに「井上」と入力して検索した場合 「上井」というように、 テキストボックスの内容が変わってしまいます。 同じコードを他の場所でも使用しているのですが、 そちらでは問題なく「井上」と表示されたままになっています。 きちんとテキストボックスの中身が「井上」のままでいるには どうしたらよいのでしょうか… 宜しくお願い致します。

みんなの回答

noname#60992
noname#60992
回答No.1

上記のコードでそれがおきるとは思えないです。 再現性があるかどうか確認してみて、必ず起きるようであれば、ステップインで発生箇所を突き止める。 リストボックスの値がたくさんあるなら、テキストボックスの値が変更されたときのイベントなどでどの瞬間に起きているかつきとめ、原因を探る。

xyz0108f
質問者

補足

ご回答有難うございます。 同じコードを記述してある違うフォームではこの現象が起きないので、記述方法がおかしいのかと思い質問させていただきました。 突き止める方法があれば、教えていただきたいのですが…。 私が見ていった限りでは、テキストのチェンジイベントの時には既に値が変わってしまうのです。 if文の所にブレイクポイントを置き、「井上」と入力してみると、値が「上」となってしまうのです。 (他のフォークでは「井」になります) VBのバグなのでしょうか…