2012-03-10 5 views
0

DataGridview에 새 행을 추가하면 데이터를 셀에 추가 할 수 있지만 이동하면 마우스가있는 행은 데이터가 셀에서 사라집니다. 데이터를 유지하려면 어떤 코드가 필요합니까? 사전에vb.net - winforms - datagridview - 일부 셀에 데이터가 채워진 새 행 - 사라짐

Private Sub BindingNavigatorAddNewItem_Click(sender As System.Object, e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click 

    ' When a new row is entered add Site id. 
    Dim rRow As Integer = 0 
    rRow = dgvEstimator2.NewRowIndex 

    '' Set Job Site ID 
    If IsDBNull(Me.dgvEstimator2(1, rRow).Value) Or IsNothing(Me.dgvEstimator2(1,  rRow).Value) Then 
     Me.dgvEstimator2(1, rRow).Value = rJobsiteID 
     ' .Rows(DGVRow).Cells(1).Value = objSheet.Cells(excelRow, 1).value 
     Me.dgvEstimator2.Rows(rRow).Cells(1).Value = rJobsiteID 
     ' Me.dgvEstimator2.Rows(rRow).Cells(1).Selected = True 
     'dataGridView1.Rows[Rowindex].Selected = true 
     Me.dgvEstimator2.Rows(rRow).Selected = True 
     ' dgvEstimator2.Rows(rRow).SetValues() 
     dgvEstimator2.CommitEdit(DataGridViewDataErrorContexts.Commit) 

    End If 

최종 하위

감사합니다!

답변

1

달성하려는 목표는 완전히 명확하지 않지만 새 행의 일부 기본값을 설정하려는 것처럼 들릴까요?

이렇게하려면 버튼을 사용할 필요가 없습니다. AllowUsersToAddRows을 true로 설정하면 새 행이 눈금의 아래쪽에 표시됩니다. 새 행에 기본값이 필요하고 거기에 셀을 채울 수있는 이벤트가 있습니다. 당신이 원하는 경우 ID 열에 대한 좋은 생각이 될 수있는, 읽기 전용으로 변경할 수 있습니다 -

Private Sub dataGridView1_DefaultValuesNeeded(ByVal sender As Object, _ 
ByVal e As System.Windows.Forms.DataGridViewRowEventArgs) _ 
Handles DataGridView1.DefaultValuesNeeded 

    Dim index As Integer 
    index = DataGridView1.NewRowIndex + 1 

    e.Row.Cells("Column1").Value = index.ToString() 

End Sub 

세포는 여전히 편집 할 수 있습니다.

관련 문제