每个循环的VB.NET都不起作用

时间:2016-08-15 15:06:55

标签: vb.net foreach

我有一个列表框,其中包含从txt文件加载x对象的代码:

    Dim lines() As String = IO.File.ReadAllLines(Application.StartupPath() + "\file.txt")
    List.Items.AddRange(lines)

    Try
        List.SelectedIndex = 0
    Catch ex As Exception

    End Try

    Return True

它加载它们很好。然后我只尝试像这样循环它们:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim num As Integer = 0
    Dim item As Object

    For Each item In List.Items
        List.SelectedIndex = num
        num += 1
    Next

End Sub

我得到的错误是:

  

未处理的类型' System.InvalidOperationException'发生在System.Windows.Forms.dll

其他信息:此枚举器绑定的列表已被修改。只有在列表没有更改时才能使用枚举器。

我尝试手动加载列表框,没有帮助。 这里有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

使用

    For num = 0 To List.Items.Count - 1
        List.SelectedIndex = num
    Next

正如@CodyGray正确指出的那样:原因是如果你要修改你所枚举的项目集合,就不能使用A for-each循环。

这将最终选择最后一项,因此如果您正在测试每个项目的事件处理程序,那么它才真正有用。