索引超出范围(Range Is Variable)
Index Out Of Range (Range Is Variable)
所以我正在尝试 return 我的 datagridview 中的所有列名。下面的代码 return 是列名称,除了最后,我有一条消息说明 Index was out of range
我认为这是因为我的 datagridview 中的列少于 500。
理论上 500 可以是任意数量,有些可能只有 20 列,有些可能有 300 列。
我该如何清除这个错误?
Dim c As Integer
For cn = 0 To 500
c = c + cn
'Debug.Print(cn)
Debug.Print(DataGridView1.Columns(cn).Name)
Next cn
"Index out of range" 当您尝试访问不存在的索引下的集合成员时可能会发生异常
让我们举个例子 - 你在这里 DataGridView1.Columns(cn)
出错是因为你的 cn
有一个 DataGridView1.Columns
中不存在的值。例如,如果您有 2 列,则索引为 0
和 1
。如果您尝试请求 DataGridView1.Columns(2)
- 您将得到此异常。因此,正如上面评论中提到的,在处理集合时,您要么使用 For Each
循环,要么使用 For... count -1
循环
这是正确的代码:
For i as Integer = 0 To DataGridView1.Columns.Count - 1
Debug.WriteLine(DataGridView1.Columns(i).Name)
Next
For Each
的例子
For Each s as String In myStrings ' myStrings can be List(Of String)
Debug.WriteLine(s)
Next
所以我正在尝试 return 我的 datagridview 中的所有列名。下面的代码 return 是列名称,除了最后,我有一条消息说明 Index was out of range
我认为这是因为我的 datagridview 中的列少于 500。
理论上 500 可以是任意数量,有些可能只有 20 列,有些可能有 300 列。
我该如何清除这个错误?
Dim c As Integer
For cn = 0 To 500
c = c + cn
'Debug.Print(cn)
Debug.Print(DataGridView1.Columns(cn).Name)
Next cn
"Index out of range" 当您尝试访问不存在的索引下的集合成员时可能会发生异常
让我们举个例子 - 你在这里 DataGridView1.Columns(cn)
出错是因为你的 cn
有一个 DataGridView1.Columns
中不存在的值。例如,如果您有 2 列,则索引为 0
和 1
。如果您尝试请求 DataGridView1.Columns(2)
- 您将得到此异常。因此,正如上面评论中提到的,在处理集合时,您要么使用 For Each
循环,要么使用 For... count -1
循环
这是正确的代码:
For i as Integer = 0 To DataGridView1.Columns.Count - 1
Debug.WriteLine(DataGridView1.Columns(i).Name)
Next
For Each
For Each s as String In myStrings ' myStrings can be List(Of String)
Debug.WriteLine(s)
Next