Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在输入有效项后在DataGridView单元格中输入无效项时,如何获取当前单元格值?_Vb.net_Datagridview_Datagridviewtextboxcell - Fatal编程技术网

Vb.net 在输入有效项后在DataGridView单元格中输入无效项时,如何获取当前单元格值?

Vb.net 在输入有效项后在DataGridView单元格中输入无效项时,如何获取当前单元格值?,vb.net,datagridview,datagridviewtextboxcell,Vb.net,Datagridview,Datagridviewtextboxcell,我有一个DataGridView控件,它有一个TextBox列。在DataGridView.CellValidating事件中,我使用以下代码验证条目是否为可接受的日期: dgvStartingGrid.EndEdit() Dim dteStartTime As DateTime If Not Date.TryParse(dgvStartingGrid.CurrentRow.Cells(4).Value, dteStartTime) Then MessageBox.Show("Pleas

我有一个DataGridView控件,它有一个TextBox列。在DataGridView.CellValidating事件中,我使用以下代码验证条目是否为可接受的日期:

dgvStartingGrid.EndEdit()
Dim dteStartTime As DateTime
If Not Date.TryParse(dgvStartingGrid.CurrentRow.Cells(4).Value, dteStartTime) Then
    MessageBox.Show("Please enter a starting time in one of the following formats:" & vbCrLf & _
    vbCrLf & "- MM/DD/YY HH:MM:SS (24 Hour Format)" & vbCrLf & "- HH:MM:SS (24 Hour Format)" & _
    vbCrLf & "- HH:MM:SS (AM/PM) (12 Hour Format)", "Start Time Entry Error")
    e.Cancel = True
End If
第一次编辑单元格时,此代码工作正常

我遇到的问题是,如果我输入一个有效日期,然后在CellValidating事件中返回单元格并输入一个无效日期,它会跳过IF…End IF块,因为它显示当前单元格值是旧的有效日期,而不是单元格中当前的无效条目

如何提交或获取当前驻留在DataGridView单元格中的无效值


谢谢

请改用CellValidated事件


在替换新单元格值之前调用CellValidating事件这似乎不起作用。如果我键入正确的日期时间格式,例如8:00,单元格将被验证。下次我在同一单元格中输入无效的日期时间时,如“8”,CellValidating事件将运行且不会出错,但CellValidated事件将不会运行。在这两者之间有什么事情发生吗?是否有方法查看可能阻止CellValidated事件运行的错误?