我有一个DataGridView绑定到Windows窗体应用程序中的Access数据库。当我创建一个新行并输入无效数据(根据Access中设置的规则验证,例如,单元格不能为空),然后移动到另一行时,数据将丢失。没有抛出错误或DataGridView行上的错误信息。
我在CellValidating和RowValidating事件上尝试了e.cancel而没有运气。有什么想法吗?
答案 0 :(得分:0)
当系统抛出异常时会发生这种情况,例如“现在允许的任何列中不允许使用NULL值,复制主键等等。”
为了处理和观察这个,你需要处理DataGrid View的“DataError”事件。在那里你可以使用e.Cancel = True,它将在用户正在使用的数据行上显示“错误图标”。
Private Sub ctlBrokingIntBrokerageList_DataError(DataGridView As DataGridView, e As DataGridViewDataErrorEventArgs) Handles Me.DataError
If TypeOf (e.Exception) Is FormatException Then
e.Cancel = True
If dgvMain.CurrentRow IsNot Nothing Then
dgvMain.CurrentRow.ErrorText = e.Message
End If
End if
End sub