使用LOOP删除Datagridview行

时间:2016-08-31 15:10:07

标签: vb.net winforms datagridview

我的数据网格视图包含一列。 许多DataGridView行是空的我使用Loop删除这些行。

For j = 0 To DataGridView1.RowCount - 1           
    If DataGridView1.Rows(j).Cells(0).Value.ToString.Length = 0 Then
        DataGridView1.Rows.RemoveAt(j)
    End If
Next
  

错误:索引超出范围。必须是非负的且小于   集合的大小。

提前致谢!

1 个答案:

答案 0 :(得分:3)

与C#不同,在VB.NET中,For循环上限被评估only once in the beginning of the loop,并且不会在每次循环迭代中重新计算。您可以从最后一行循环以避免问题:

For j = DataGridView1.RowCount - 1 To 0 Step -1
    If DataGridView1(0, j).Value = "" Then DataGridView1.Rows.RemoveAt(j)
Next