2014-09-03 1 views
0

이 코드를 가지고인덱스가 범위를 벗어났습니다. 음수가 아니어야하며 콜렉션의 크기보다 작아야합니다. 매개 변수 이름 : 된 DataGridView VB .NET에서 인덱스

For sc5 = 0 To DataGridView1.RowCount - 1 

     If (DataGridView5.Item(0, sc5).ToString = 
     DataGridView5.Item(0, sc5 + 1).ToString) And 
     (DataGridView5.Item(4, sc5).ToString = DataGridView5. 
     Item(4, sc5 + 1).ToString) Then 

      DataGridView5.Rows.RemoveAt(sc5 + 1) 

    End If 

Next 

내 문제는 항상 index was out of range보기 있지만 난 0

답변

0

에서 인덱스를 설정할 수 SC5가 도달 할 때 문제입니다 마지막 값. 마지막 값은 rowCount-1입니다. 코드에서 데이터 그리드를 인덱싱 할 때 몇 가지 경우에 1을 더합니다. 즉, 어떤 시점에서 행 인덱스는 rowCount가됩니다. 행 인덱스는 0에서 rowCount-1까지 가야한다. 너는 이것을 초과하고있다. 마지막으로 실행 sc5=datagridview.RowCount-1 시간이 유 sc5 + 1 의 값을 확인

0

경우 그래서 시간 범위 값의 밖으로의 쇼 지수는

For xi As Integer = DataGridView1.RowCount - 1 To 1 Step -1 

      If DataGridView1.Item(0, xi).Value.ToString = 
      DataGridView1.Item(0, xi - 1).Value.ToString andalso 
      (DataGridView5.Item(4, xi).ToString = 
      DataGridView5.Item(4, xi-1).ToString)Then 

       DataGridView1.Rows.Remove(DataGridView1.Rows(xi)) 

      End If 

    Next 
처럼 시도
관련 문제

 관련 문제