2016-08-18 28 views
-1

我試圖運行此代碼每5秒:VB.NET AppendText通過(超出範圍)

Form2.RichTextBox1.Clear() 
    Dim ioFile As New StreamReader("C:\Users\*********\linetest.txt") 
    Dim lines As New List(Of String) 
    Dim rnd As New Random() 
    Dim line As Integer 

    While ioFile.Peek <> -1 
     lines.Add(ioFile.ReadLine()) 
    End While 

    line = rnd.Next(lines.Count + 1) 

    Form2.RichTextBox1.Text = (lines(line).Trim()) 
    ioFile.Close() 
    ioFile.Dispose() 

它運行良好,更改文本每5秒。改變它大約8次後,它會崩潰說「ArgumentIndexOutOfRange」

任何人都知道爲什麼?我似乎無法在此網站上找到它。

謝謝!

+0

如果你有一個新的問題,使用「問問題」按鈕來問它,而不是編輯你的舊問題。 – josliber

回答

1

我相信你的問題是你在哪裏產生的隨機數線 - >行= rnd.next(lines.count()+ 1)

如果rnd.next產生實際line.count( )值,這是可能的,因爲您將1加到計數中,那麼當您將該值作爲行的索引傳遞時,它將大於列表的最大可能索引。

+0

非常感謝!我剛剛刪除了+ 1,它現在正在工作! –

+0

現在還有另一個問題。上面編輯。 –

+1

聽起來這個人給出了正確的答案,但你改變了這個問題。 SO的規則說,你應該接受這個答案,並用你的新代碼提出一個新問題。 – tgolisch