2016-08-31 10 views
1

Meine Datenrasteransicht enthält eine Spalte. Viele Zeilen von DataGridView sind leer Ich verwende Loop, um diese Zeilen zu entfernen.Löschen von Datagridview-Zeilen mit 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 

Fehler: Index war außerhalb des Bereichs. Muss nicht negativ sein und weniger als die Größe der Sammlung.

Vielen Dank im Voraus!

Antwort

3

Im Gegensatz zu C# wird in VB.NET die obere Grenze der For-Schleife only once in the beginning of the loop ausgewertet und nicht in jeder Schleifeniteration neu ausgewertet. Sie können eine Schleife von der letzten Zeile ausführen, um das Problem zu vermeiden:

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