代码运行两次
问题描述:
我已经得到了开始日期来验证结束日期和显示消息后,但是当我把下面的代码.focus它似乎运行代码两次 我已经尝试了一切 句柄是假 尝试,它没有工作 我也把它变成一个新的线程,没有工作 并成一个函数,没有工作 IM在我结束智慧在这一个代码运行两次
这里是代码
Function DateCompare(ByVal Start As Date, ByVal Finish As Date, ByVal WhichDate As String)
If WhichDate = "DateIn" Then
If DateTime.Compare(Start, Finish) > 0 Then
MsgBox("Dates Are Invalid : Date In Cannot be after Date Out, Please Amend", vbExclamation, "Dates Are Incorrect")
Return False
Exit Function
Else
Return True
End If
Else
If DateTime.Compare(Finish, Start) < 0 Then
MsgBox("Dates Are Invalid : Date Out Cannot be before Date In, Please Amend", vbExclamation, "Dates Are Incorrect")
Return False
Exit Function
Else
Return True
End If
End If
End Function
Private Sub dtpDateTimeIn_leave(ByVal sender As Object, ByVal e As EventArgs) Handles dtpDateTimeIn.Leave
Dim result As Boolean
result = DateCompare(dtpDateTimeIn.Value, dtpDateTimeOut.Value, "DateIn")
If result = False Then
dtpDateTimeIn.Focus()
End If
End Sub
Private Sub dtpDateTimeOut_leave(ByVal sender As Object, ByVal e As EventArgs) Handles dtpDateTimeOut.Leave
Dim result As Boolean
result = DateCompare(dtpDateTimeIn.Value, dtpDateTimeOut.Value, "DateOut")
If result = False Then
dtpDateTimeOut.Focus()
End If
End Sub
答
尝试使用代替Validating
事件。他们是这样做的:
Private Sub dtpDateTimeIn_Validating(ByVal sender As Object, ByVal e As CancelEventArgs) Handles dtpDateTimeIn.Validating
e.Cancel = Not DateCompare(dtpDateTimeIn.Value, dtpDateTimeOut.Value, "DateIne")
End Sub
Private Sub dtpDateTimeOut_Validating(ByVal sender As Object, ByVal e As CancelEventArgs) Handles dtpDateTimeOut.Validating
e.Cancel = Not DateCompare(dtpDateTimeIn.Value, dtpDateTimeOut.Value, "DateOut")
End Sub