2014-06-10 1 views
0

DataGridView에 행을 추가하려고하지만 새 행이 추가 될 때마다 이전 행의 셀 값을 Nothing으로 설정하는 것처럼 보입니다.DataGridView에 행을 추가하면 기존 행이 지워짐

저는 항상이 작업을 수행하지만이 새로운 프로젝트에서는 작동하지 않습니다.이 버그가 있습니까? 아니면 확실하지 않은 것이 있습니까? (더 많은 것!)

내 코드 :

DG = DataGridView 

lstOrders = List(Of mystructure) 

    Private Sub PopulateGrid() 
     DG.Rows.Clear() 

     For i As Integer = 0 To lstOrders.Count - 1 
      DG.Rows.Add() 

      With DG.Rows(DG.Rows.Count - 1) 
       .Cells(ColUsername.Index).Value = "abc" 'test 
       'etc 
      End With 
     Next 
    End Sub 

셀 값이 잘 채워지는하지만,이 DG.Rows.Add()에 이전 행을 얻을 때 모두 Nothing으로 설정됩니다.

무슨 일 이니?

+0

'Add' 메서드는 방금 추가 된 행의 인덱스를 반환합니다. 나는 코드의 다음 섹션에서 행에 액세스하는 데 사용하는 경향이 있습니다. 그것을 시도하고 당신은 여전히 ​​동일한 문제가 있는지보십시오. – jmcilhinney

+0

@jmcilhinney 그게 고쳐, 고마워! 또한 추가/편집/삭제 여전히 사용할 수있는 것으로 나타났습니다, 그때 내가 원래의 방법을 작동시키기 시작했다. 이상한. – Sparrowhawk

+1

전혀 이상하지 않습니다. 사용자가 행을 추가 할 수 있으면 그리드의 마지막 행이 데이터 입력 행입니다. 원래 코드가 표의 마지막 행에 채워 졌으므로 추가 한 행이 아니라 데이터 입력 행이됩니다. 'Add'에 의해 리턴 된 인덱스를 사용함으로써 당신은 다른 것에 관계없이 방금 추가 된 행에 접근 할 수 있습니다. – jmcilhinney

답변

0

완벽을 기하기위한 해결책은 Add이 반환 한 색인을 사용하여 방금 추가 한 행에 항상 액세스 할 수 있도록하는 것입니다. 원래 사용 된 색인은 상황에 따라 동일한 행을 참조했거나 참조하지 않았을 수 있습니다.

관련 문제