我有一个列表框,我想循环遍历每个项目,看看我正在寻找的字符串是否在里面。我知道我可以做.contains,但那不会看到子串。使用的代码如下所示:
While tempInt > Listbox.items.count then
if searchString.contains(listbox(tempInt)) then
end if
tempInt+=1
end while
循环中的所有内容都很好,但VB在列表框(tempInt)部分给出错误。错误是“类windows.forms.listbox无法编入索引,因为它没有默认值”。任何人都可以帮助绕过默认值废话?我尝试输入一个空白字符串,但没有变化。
答案 0 :(得分:1)
使用列表框的Items
属性,可以通过索引器访问,如数组......
listBox.Items[0]
答案 1 :(得分:1)
错误消息表示ListBox
类没有索引器(意味着它没有定义属性,在VB中称为default
,索引器或this
C#中的属性,可以传递索引以便检索值。)
您正在寻找listbox.Items(tempInt)
除此之外,使用For
循环优于您选择的While
,但For Each
可能是最好的(假设您不需要索引)
For tempInt as Integer = 0 to listbox.Items.Count - 1
if searchString.contains(listbox.Items(tempInt).ToString()) then
end if
Next
或者,如果索引对您不重要,请使用For Each
For Each item in listbox.Items
if searchString.contains(item.ToString()) then
end if
Next