比如list里有
1
2
3
4
5
1
2
3
4
1用text输入字符搜索1.
list只会显示index=0的1。不会显示index=5的1。
怎么实现类似"下一个"的功能?

解决方案 »

  1.   

    定义一个公共变量,记录搜索的位置
    假定有两个按钮,一个是“搜索”,一个是“下一个”,当点击“搜索”时,设置公共变量为 0,然后触发循环过程,当找到目标后停止循环。当点击“下一个”时,不改变公共变量的值,并以公共变量的值+1为起始点开始循环,找到后就退出循环
    Dim FindID As Long' 搜索
    Private Sub Command1_Click()
       FindID = 0
       Search
    End Sub' 下一个
    Private Sub Command2_Click()
       Search
    End SubPrivate Sub Search()
       Dim i        As Long
       Dim logSave  As Long
       If FindID >= List1.ListCount Then
          Exit Sub
       End If
       logSave = FindID
       For i = FindID To List1.ListCount - 1
          If List1.List(i) = Text1.Text Then
             List1.ListIndex = i
             FindID = i + 1
             If FindID >= List1.ListCount Then
                FindID = 0
             End If
             Exit For
          End If
       Next i
       If logSave = FindID Then
          FindID = 0
          MsgBox "已经查找到最后都没有目标,请您确定", 64, "提示"
       End If
    End Sub