我的假设是你正在使用datagridview绑定源?将数据集添加到项目的数据源(菜单:数据 - >添加新数据源)。然后,菜单:数据 - >显示数据源。右键单击表格并选择将其显示为数据网格。将表格拖到表单上。在网格上右键单击编辑列。删除不需要的列,然后格式化剩下的列。设计者将自动为你创建一个绑定源。在表单代码中,选择左上角下拉列表中的Bindsource,然后选择右上方的“AddingNew”。新活动将为您创建。在活动内部,添加以下代码:
Private Sub YourTableBindingSource_AddingNew(ByVal sender As Object, _
ByVal e As system.ComponentModel.AddingNewEventArgs) _
Handles bsyourBinding.AddingNew
Dim bs As BindingSource = CType(sender, BindingSource)
Dim view As System.Data.DataView = CType(bs.List, System.Data.DataView)
Dim _row As System.Data.DataRowView
_row = view.AddNew
dim newRow as yourDataSet.yourTableRow = DirectCast(_row.Row, yourDataSet.yourTableRow)
With newRow
.BeginEdit()
NextIDNumber += 1
.MyIDField = NextIDNumber
.MyDataField1 = Today.AddDays(1).Date
.MyDataField2 = someData
.MyDataField3 = someOtherData
.EndEdit()
End With
bs.MoveLast()
e.NewObject = _row
End Sub
当您添加属于父表的记录时,此绑定源AddingNew事件特别有用。当表使用绑定源绑定到网格时,对绑定源所做的所有更改都会自动反映到网格中。您不必在网格中显示ID号。如果用户点击网格上的新行,该绑定源事件将被自动触发。
我还将包含一些网格事件的代码CellParsing,CellValidating,CellValidated(用来清除错误信息并可能做一些数学运算)和RowValidating。在行验证中,您可以检查所有单元格是否有值并且是有效的。如果用户留有空白行,则可以调用.CancelEdit删除空行并防止将其存储到数据库中。
谁要在隐藏字段中添加数据,您还是最终用户? –
您可以将数据添加到隐藏字段,就像它们可见(以编程方式)一样。如果你对如何隐藏用户输入内容感到困惑,那么我会建议在datagridview旁边添加一个文本框和按钮,以便将信息放入选定行的隐藏列中,或者对此产生影响 – AaronTheRabbit