2012-03-10 95 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時,新行應顯示在網格的底部。當新行需要默認值時會引發一個事件,您可以在其中填充單元格。

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 

細胞仍然是可編輯的 - 你可以改變他們是隻讀的,如果你想,這可能是ID列是個好主意。

相關問題