2016-08-15 54 views
0

我有了從一個txt文件加載此代碼對象的x量列表框:VB.NET每個迴路不工作

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

你想用循環完成什麼? – Fairy

+0

只能改變選定的索引。 @Fairy – T1mpp4

+0

千萬不要使用空的try-catch。它隱藏了問題。 – LarsTech

回答

1

使用

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

而作爲@CodyGray正確地指出:這樣做的原因是A for-each循環不能使用,如果你要改變你列舉了項目的集合。

這將最終選擇最後一個項目,因此如果您正在測試每個項目的事件處理程序,那麼它只能用於任何用途。

+2

你應該解釋*爲什麼*你必須這樣做。換句話說,*爲什麼*您的解決方案可以解決問題。 (如果您要修改您正在枚舉的項目集合,則for-each循環無法使用。) –