Как правильно проверять .NET Windows Forms? - PullRequest
2 голосов
/ 09 января 2011

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

Я хотел бы, например, проверить правильность имени пользователя и пароля, когда пользователь нажимает кнопку OK в диалоговом окне.

Должен ли я сделать это в событии закрытия и отменить закрытие диалога, если проверка не пройдена?Или установите DialogResult на ноль вместо ОК.Все это кажется неправильным способом сделать это.Я также видел события Validated и Validating, но разве они не предназначены для проверки только одного элемента управления на допустимый ввод?

Как можно проверить больше элементов управления при нажатии кнопки ОК и отменить закрытие формы?

Ответы [ 2 ]

3 голосов
/ 09 января 2011

Это зависит от того, что вы пытаетесь сделать. Если вы хотите убедиться, что пользователь ввел что-то, что может быть допустимым именем пользователя / паролем, вы можете использовать события Validating (например, убедиться, что оно достаточно длинное и т. Д.). Если вы хотите убедиться, что имя пользователя / пароль соответствуют действительной учетной записи, вам придется подождать, пока они нажмут кнопку ОК, и проверить учетные данные. Если они плохие, вы можете открыть окно сообщения (или что-то еще) и предотвратить закрытие диалога (DialogResult.None).

1 голос
/ 09 января 2011

Каждый элемент управления предлагает Validating событие. В этом случае вы можете реализовать проверку одного элемента управления. По умолчанию эта проверка запускается, когда элемент управления теряет фокус. В отличие от события Validated, обработчик этого события получает CancelEventArgs, поэтому, если проверка не удалась, вы можете отменить текущую операцию (потеряв фокус).

Если вы хотите иметь дело со сложными проверками, вы можете установить AutoValidate свойство вашей формы на AutoValidate.Disable. Это отключит неявную проверку (поведение по умолчанию описано ранее). Вместо этого вам придется вызвать ValidateChildren, чтобы вызвать явную проверку всех дочерних элементов управления.

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