2009-10-29 4 views
1

Это код, который у меня есть в моей форме, чтобы проверить, выбрана ли дата, выбранная пользователем, более чем за 14 дней или раньше.Нужна помощь по этой логике ... (.NET)

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 проверки, если это в прошлом, и прикрывать его.

Я действительно не могу думать об этом другом, кроме того, что другой текстовый блок сидит за тем, на который пользователь вводит, и отображает второе сообщение об ошибке.

У кого-нибудь есть яркие идеи? Спасибо :)

ответ

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

Вы очень близки! Просто разместите чек в блоке else.

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 
Смежные вопросы