Datagridview行索引超出了vb的范围

时间:2014-09-04 07:53:34

标签: vb.net datagridview

您好我想在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

1 个答案:

答案 0 :(得分:3)

如果要删除行,则必须使用Step -1 For loop,因为如果删除其中一行,行号会发生变化。

在您的代码中:

For i = DataGridView2.RowCount - 1 To 0 Step -1