这是我在表单中的代码,用于检查用户选择的日期是提前14天还是过去。
If (dtpDate.Value > DateTime.Today.AddDays(14)) Then
frmBookErr.SetError(dtpDate, "You cannot book more than two weeks in advance.")
Else
frmBookErr.SetError(dtpDate, "")
End If
If (dtpDate.Value < DateTime.Today) Then
frmBookErr.SetError(dtpDate, "You cannot book a room for the past.")
Else
frmBookErr.SetError(dtpDate, "")
End If
它可以工作,但如果我提前14天选择一个日期,它将不会显示错误消息,因为第二个IF检查它是否在过去并消隐。
除了让另一个文本框位于用户键入的文本框后面,并将第二条错误消息显示在该文本框之外,我真的想不到另一种方法。
有人有什么好主意吗?谢谢:))
答案 0 :(得分:8)
试试这个
If (dtpDate.Value > DateTime.Today.AddDays(14)) Then
frmBookErr.SetError(dtpDate, "You cannot book more than two weeks in advance.")
Else If (dtpDate.Value < DateTime.Today) Then
frmBookErr.SetError(dtpDate, "You cannot book a room for the past.")
Else
frmBookErr.SetError(dtpDate, "")
End If
答案 1 :(得分:1)
你非常接近!只需将支票放入else if块即可。
If (dtpDate.Value > DateTime.Today.AddDays(14)) Then
frmBookErr.SetError(dtpDate, "You cannot book more than two weeks in advance.")
Else If (dtpDate.Value < DateTime.Today) Then
frmBookErr.SetError(dtpDate, "You cannot book a room for the past.")
Else
frmBookErr.SetError(dtpDate, "")
End If