2016-08-31 2 views
1

내 데이터 격자보기에는 하나의 열이 포함됩니다. DataGridView 행이 비어 있습니다. 해당 행을 제거하려면 루프를 사용하고 있습니다.루프를 사용하여 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

VB.NET에서 C#과 달리 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