VB列表框无法编入索引,因为它没有默认值

时间:2010-03-17 16:31:26

标签: vb.net listbox

我有一个列表框,我想循环遍历每个项目,看看我正在寻找的字符串是否在里面。我知道我可以做.contains,但那不会看到子串。使用的代码如下所示:

While tempInt > Listbox.items.count then
if searchString.contains(listbox(tempInt)) then
end if
tempInt+=1
end while

循环中的所有内容都很好,但VB在列表框(tempInt)部分给出错误。错误是“类windows.forms.listbox无法编入索引,因为它没有默认值”。任何人都可以帮助绕过默认值废话?我尝试输入一个空白字符串,但没有变化。

2 个答案:

答案 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