如何在列表框vb6上搜索项目

1 vb6

你好,我有一个列表框,其中填充了来自 sql 的值,这是我的代码

列表框的填充工作

Dim Text As String, query As String, infoList As Variant
Dim MyRsADO As adobd.recordset

query = "select id, name from X where status 1 order by name asc"

Debug.Print = query
Set MyRsADO = mainmodule.DBUTILS.DbConnection.GetRecordseFromSQL(query)

ReDim listItems(0)

set listItems(0) = New C_ListItem
listItems(0).fieldName = "name"
listItems(0).fieldLabel = "name"
listItems(0).spaceAlgn = 60
listItems(0).HeaderLeft = 3050
listItems(0).HeaderWidth = 1200

infoList = listItems()
mainmodule.fillList Me, listbox, MyRsADO, "id", infoList, listbox, -1 False

End Sub
Run Code Online (Sandbox Code Playgroud)

现在是在列表框中搜索的代码

Dim i As Long
For i=0 to listbox.ListCount - 1
listbox.ListIndex = 1
if listbox.text Like txtSearch.Textt then
msgbox "Found"
exit sub
end if
next i
msgbox "0 results"
end sub
Run Code Online (Sandbox Code Playgroud)

第二个代码不起作用只显示 0 个结果我不明白我做错了什么。

Bri*_*ord 5

在循环内,您将 ListIndex 设置为 1。这意味着您始终尝试匹配列表中的第二项。您可以通过更改 ListIndex 来使代码正常工作,如下所示:

listbox.ListIndex = i
Run Code Online (Sandbox Code Playgroud)

通过此更改,您的代码将从上到下搜索列表。