您好我想在tick事件上循环我的数据网格视图。此代码执行循环但是在循环结束时,它会提示错误
“指数超出范围。必须是非负数且小于规模 收集。“
在下面代码中的注释行。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'loop each rows in datagridview
Dim i As Integer = 0
For i = 0 To DataGridView2.RowCount - 1
If DataGridView2.Rows(i).Cells(8).Value = DataGridView2.Rows(i).Cells(17).Value Then 'error prompted
'delete 1 row from datagridview
Else
'do some other operations
End If
Next
End Sub
DataGridView2.RowCount = 1
时会发生此错误。
如何解决此问题?我应该在for循环之前添加这一行吗?我是新手,请指教。
If DataGridView2.RowCount <> 1 Then
答案 0 :(得分:3)
如果要删除行,则必须使用Step -1
For loop,因为如果删除其中一行,行号会发生变化。
在您的代码中:
For i = DataGridView2.RowCount - 1 To 0 Step -1