2017-07-14 60 views
0

我正在使用Visual Studio 2017/VB/Winforms,并且我有一个DataGridView正在使用BindingSource连接到Access数据库。创建新记录时向DataGridView列添加值

它运行良好,但我需要以编程方式添加一个值到添加新记录时从用户隐藏的字段/列之一。我很确定这是一个简单的问题,但我一直在努力研究几个小时,试图找出哪个事件是正确的。这是我正在寻找的DataGridView事件还是BindingSource事件?

这里是我想会做这项工作的代码,但它仍然给我的错误,指出专案编号不能为Null

Private Sub StoresDataGridView_DefaultValuesNeeded(sender As Object, e As DataGridViewRowEventArgs) _ 
       Handles StoresDataGridView.DefaultValuesNeeded 
     e.Row.Cells("colProjectID").Value = 1 
    End Sub 

请帮我想出解决办法,如再次,我相信这件事情真的很简单,我错过了。我也试图在这个事件中设置一个断点,而且它似乎并没有被解雇。

我也尝试将这个添加到窗体的Load事件中,并且在窗体加载时没有得到任何错误,但是当尝试添加新记录时,我仍然得到相同的错误。

StoresDataGridView.Columns("colProjectID").DefaultCellStyle.NullValue = 1

+0

事实证明,'StoresDataGridView_DefaultValuesNeeded'是正确的事件,它只是wasnt射击,因为电网有'AllowUserToAddRows'是设置为“False” – Joe

回答

0

使用网格的RowValidating事件是这样的:

StoresDataGridView.Rows(StoresDataGridView.Rows.Count - 1).Cells("colProjectID").Value = 1