VB listbox自动筛选文本框的内容

例如我有 text1 listbox1 listbox2 这些控件
然后listbox1和listbox2中有以下内容:
1 5
2 6
3 9
9 7
8 7
然后我在text中输入 3 (只搜索listbox1的内容,和他相对应的listbox2的内容也要显示出来)
然后listbox1和listbox2中就自动显示出:
3 9
求代码

第1个回答  2014-01-29
Private a(5) As Integer
Private b(5) As Integer
Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        a(1) = 1
        a(2) = 2
        a(3) = 3
        a(4) = 9
        a(5) = 8
        b(1) = 5
        b(2) = 6
        b(3) = 9
        b(4) = 7
        b(5) = 7
        Dim i As Integer
        For i = 1 To 5
            ListBox1.Items.Add(a(i))
            ListBox2.Items.Add(b(i))
        Next
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Dim i As Integer
        Dim x As Integer
        x = Val(TextBox1.Text)
        For i = 0 To ListBox1.Items.Count - 1
            If ListBox1.Items(i) = x Then
                ListBox1.SelectedIndex = i
                ListBox2.SelectedIndex = i
                Exit For
            End If
        Next
    End Sub

veket用的方法没有问题,我试过了,但是不知道是不是因为VB和VB.NET有区别,个别地方的属性不太一样,我改了下,应该基本上符合你的要求了,也许我的能用,也许veket的能用...

第2个回答  2014-01-29
 Private Sub Command1_Click()
Dim a As String
If List1.ListCount = List2.ListCount And List1.ListCount <> 0 Then
For i = 1 To List1.ListCount
a = List1.List(i - 1)
If a = Text1.Text Then '找的只是第一个“3”
List1.ListIndex = i - 1
List2.ListIndex = i - 1
Exit For
End If
Next i
Else
MsgBox "list1 和 list2 不一样长或为空", vbOKOnly, "提示!"
End If
End Sub

 

第3个回答  2014-01-28
Private a(1 To 5) As Integer
Private b(1 To 5) As Integer
Private Sub Form_Load()
    a(1) = 1
    a(2) = 2
    a(3) = 3
    a(4) = 9
    a(5) = 8
    b(1) = 5
    b(2) = 6
    b(3) = 9
    b(4) = 7
    b(5) = 7
    Dim i As Integer
    For i = 1 To 5
        List1.AddItem a(i)
        List2.AddItem b(i)
    Next
End Sub
Private Sub Text1_Change()
    Dim i As Integer
    Dim x As Integer
    x = Val(Text1.Text)
    For i = 0 To List1.ListCount - 1
        If List1.List(i) = x Then
            List1.ListIndex = i
            List2.ListIndex = i
            Exit For
        End If
    Next
End Sub

本回答被提问者和网友采纳
相似回答