2013-04-23 23 views
0

我有一個DataGridView控件有一個TextBox列。在DataGridView.CellValidating事件,我用下面的代碼來驗證該條目是可接受的數據:在輸入有效條目後在DataGridView單元格中輸入無效條目時,如何獲取當前單元格值?

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單元格中的無效值?

謝謝

回答

1

改爲使用CellValidated事件。

CellValidating event before called New cell value

+0

這似乎不起作用。如果我輸入正確的日期時間格式,例如8:00,則單元格將被驗證。下一次我在同一個單元格中輸入無效的日期時間(如「8」)時,CellValidating事件將運行並且不會出錯,但CellValidated事件將不會運行。這兩者之間是否發生過一些事件?有沒有辦法查看可能阻止CellValidated事件運行的錯誤? – J2Tuner 2013-04-24 13:26:02

+0

您是否嘗試刪除cellValidating事件? – Mathter 2013-04-25 15:40:36

相關問題