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

解決


みい  2006-09-13 23:54:21  No: 133236

お世話になっています。

リストボックス内に表示したデータを検索するプログラムを作っています。

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

という感じで、あいまい検索をしています。
検索結果は上手く取得できたのですが、
例えばテキストボックスに「井上」と入力して検索した場合
「上井」というように、
テキストボックスの内容が変わってしまいます。

同じコードを他の場所でも使用しているのですが、
そちらでは問題なく「井上」と表示されたままになっています。

きちんとテキストボックスの中身が「井上」のままでいるには
どうしたらよいのでしょうか…

宜しくお願い致します。


すいすい  2006-09-14 02:55:56  No: 133237

テキストボックスのカーソルの位置が戻ってしまうのが原因だと思う。


natu  2006-09-14 03:57:27  No: 133238

txtName_Change では無くて
txtName  の内容(検索文字列)が確定した段階で
「検索」ボタンをクリックする事で検索処理が
開始されるようにしたら如何ですか?


みい  2006-09-14 18:06:20  No: 133239

ご意見有難うございます。

色々な人に手伝ってもらった結果、解決できました。
フォームのキープレス部分でエンターキーを押したときに
タブと同じ働きをするように設定していたのですが、
その部分にかかれていたDoeventsが原因でした。

他人から引き継いだものでしたので、全く気付きませんでした…

有難うございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加