2012-03-10 138 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列是个好主意。

相关问题