2016-08-31 15 views
1

マイデータグリッドビューには1つの列が含まれます。 DataGridViewの多くの行が空です。これらの行を削除するためにループを使用しています。LOOPを使用してDatagridview行を削除する

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 

エラー:インデックスが範囲外でした。負でなく、コレクションのサイズが 未満である必要があります。

ありがとうございました!

答えて

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 
関連する問題