ErrorProvider работает на одном звонке, а не на другом? - PullRequest
0 голосов
/ 24 февраля 2012

Я использую элемент управления ErrorProvider в проекте winforms.Его работает по большей части (хотя немного неудобно в использовании).

Теперь у меня есть 2 элемента управления, которые запускают один и тот же валидатор.В валидаторе я смотрю на каждый элемент управления и устанавливаю ошибку, если она неправильная.Один звонок работает, а другой нет.Как это может быть?Нет исключений.

Код:

  if (endHour > 12)
  {
     if (endHour >= 24)
     {
         //Fails without error
         errorProvider1.SetError(lblEnd, "You cannot enter more than 24 hours in a day");  
     }
     else
     {
         txtEndHour.ForeColor = Color.Blue;
     }
  }
  else
  {
      errorProvider1.SetError(lblEnd, "");
  }

 if (endMin >= 60)
 {
     //Always works.
     errorProvider1.SetError(lblEnd, "You can't enter more than 60 minutes in an hour.");  
 }
 else
 {
    errorProvider1.SetError(lblEnd, "");
 }

1 Ответ

1 голос
/ 24 февраля 2012

Если вы вызываете этот код с endHour> = 24, но endMin <60, вы всегда попадете в финал, который очищает errorProvider. <br> Вы должны разделить две проверки (лучше) или поставить возврат, когда вы обнаружите, что часовая часть недействительна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...