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 に答える