我有一个包含项目的列表框,当我按下一个按钮时,我想转到下一个项目。我有一个可怕的脑屁并且已经有一段时间了。
for x = 0 to listbox1.items.count - 1
label1.text = listbox1.items.item(x)
x += 1
next
我可能是一个愚蠢的错误:( 谢谢!
答案 0 :(得分:1)
将循环中的代码放入Click
事件处理程序。
Private listItemIndex As Integer = 0
Private Sub Button_Click(sender As Object, e As EventArgs)
If listItemIndex < ListBox1.Items.Length Then
Label1.Text = ListBox1.Items(listItemIndex).ToString()
listItemIndex += 1
End If
End Sub
而且,如果您需要像原始代码一样遍历所有项目,请始终优先选择For Each
循环到索引循环。它更简洁,更直接,因此(可以说)更具惯用性。
For Each item In ListBox1.Items
Label1.Text = item.ToString()
Next
/编辑:注意在项目的任何地方启用Option Strict
,除非有令人信服的理由不这样做。这使编译器能够识别出更多潜在的问题。这也意味着上述代码需要显式转换(或调用ToString
),因为ListBox.Items
会返回Object
。