Vb.net For语句中的System.Indexoutofrangeexception

Vb.net For语句中的System.Indexoutofrangeexception,vb.net,visual-studio,exception,Vb.net,Visual Studio,Exception,我正在编写一个解析器,发生了这个异常。这是密码 Private Sub BackgroundWorker1_DoWork(sender As Object, e As ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork For i As Integer = 0 To TextBox1.Lines.Length - 1 If TextBox2.Lines(i).StartsWith("print

我正在编写一个解析器,发生了这个异常。这是密码

 Private Sub BackgroundWorker1_DoWork(sender As Object, e As ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
    For i As Integer = 0 To TextBox1.Lines.Length - 1
        If TextBox2.Lines(i).StartsWith("print") = True Then
            Dim str1 As String = TextBox2.Lines(i).ToString.Replace("print", "echo")
            TextBox2.Text = TextBox2.Text + Environment.NewLine + str1
        ElseIf TextBox2.Lines(i) = "selfping" Then
            TextBox2.Text = TextBox2.Text + Environment.NewLine + "ping 127.0.0.1"
        ElseIf TextBox2.Lines(i) = "pause empty" Then
            TextBox2.Text = TextBox2.Text + Environment.NewLine + "pause >nul"
        ElseIf TextBox2.Lines(i) = "clear" Then
            TextBox2.Text = TextBox2.Text + Environment.NewLine + "cls"
        Else
            TextBox2.Text = TextBox2.Text + Environment.NewLine + TextBox2.Lines(i)
        End If
    Next
End Sub

这适用于每个If和ElseIf语句。

我修复了它。Textbox2应该是textbox1。我真的应该买一个代码分析器。

TextBox2.Linesi-这看起来像一个数组,不幸的是,我没有经验,无法判断数组是什么。TextBox1是一个多行文本框吗?您正在检查TextBox1中的行数,然后遍历TextBox2的行集合,您如何知道TextBox2中的行数实际上与TextBox1中的行数相同?这是因为TextBox1中的每一行代表TextBox2中的每一行。我是这样编码的。