在向数组添加数据时,它会显示System.IndexOutOfRangeException?

时间:2015-02-16 08:43:01

标签: arrays visual-studio bounds

将数据添加到数组时,我不断收到错误' System.IndexOutOfRangeException'声明数组被绑定为200,并且在数据中我试图添加的数据是6 + 1,6是代码中的变量计数。

Public Class FormEvents
Dim ArrayEvents(200) As String
Dim Count As Integer
Private Sub FormEvents_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim Events As String = "C:\Users\Andrew prince\Desktop\Education\College\Computing\Controlled assesment\Program\Program files\Events.txt"
    Dim ObjReader As New StreamReader(Events)
    ArrayEvents = ObjReader.ReadLine().Split(",")
    UpdateInfo()
    ObjReader.Close()
    TxtEventNo.Enabled = False
    BtnAdd.Enabled = False
End Sub

Sub UpdateInfo()
    TxtEventNo.Text = ArrayEvents(Count)
    TxtEventType.Text = ArrayEvents(Count + 1)
    TxtEventDistance.Text = ArrayEvents(Count + 2)
End Sub

Private Sub BtnNext_Click(sender As Object, e As EventArgs) Handles BtnNext.Click
    Count = Count + 3
    checkInfo()
End Sub

Private Sub BtnPrev_Click(sender As Object, e As EventArgs) Handles BtnPrev.Click
    Count = Count - 3
    checkInfo()
End Sub
Sub Createvent()
    Dim eventNo As String
    eventNo = Count / 3
    TxtEventNo.Text = eventNo
    TxtEventDistance.Text = ""
    TxtEventType.Text = ""
    BtnNext.Enabled = False
    BtnPrev.Enabled = False
    BtnAdd.Enabled = True
End Sub
Sub checkInfo()
    If Count <= 0 Then Count = 0
    If ArrayEvents(Count) = "" Then Createvent() Else UpdateInfo()
End Sub

Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click
    If TxtEventDistance.Text.Length > 0 And TxtEventType.Text.Length > 0 Then AddToArray()
End Sub
Sub AddToArray()
    ArrayEvents(Count) = TxtEventNo.Text
    ArrayEvents(Count + 1) = TxtEventType.Text 'error occurs here in the code
    ArrayEvents(Count + 2) = TxtEventDistance.Text
    Enable()
End Sub
Sub Enable()
    BtnAdd.Enabled = False
    BtnNext.Enabled = True
    BtnPrev.Enabled = True
End Sub

结束班

1 个答案:

答案 0 :(得分:0)

在load方法中将ArrayEvents设置为:

后,它的长度可能不再超过200
ArrayEvents = ObjReader.ReadLine().Split(",")