2016-08-18 83 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