0

我有一个具有 TextBox 列的 DataGridView 控件。在 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 单元格中的无效值?

谢谢

4

1 回答 1

1

请改用 CellValidated 事件。

在替换新单元格值之前调用 CellValidating 事件

于 2013-04-23T19:12:14.827 回答