Управление поведением верификации посредством свойства AutoValidate

так сделано по соображениям обратной

По умолчанию приложения Windows Forms 2.0, когда вы устанавливаете в True Свойство Cancel Аргумента события Validating, Будут вести себя так же, как в предыдущих версиях, — это предотвращает уход фокуса с элемента управления и прекращает процесс верификации, так что событие Validated Не запускается. Так сделано по соображениям обратной совместимости. Однако в класс ContainerControl Было включено новое свойство, которое позволяет вам при желании модифицировать такое поведение. Если вы собираетесь производить верификацию программно для всей формы, или просто не хотите заставлять пользователей корректировать проблемные элементы управления по одному, вы можете изменить значение свойства AutoValidate Для формы. Это свойство принимает значение перечислимого типа AutoValidate, Который позволяет устанавливать любое из значений, описанных в таблице 10.3. Значением по умолчанию для этого свойства является Enable Prevent FocusChange, Которое моделирует поведение. NET 1.1. Обычно вы будете устанавливать AutoValidate Равным EnableAllow — FocusChange Или Disable, Если собираетесь вручную производить верификацию на уровне формы, используя метод ValidateChildren, Описанный в следующем разделе. Как упоминалось выше, метод validate производит верификацию текущего элемента управления в фокусе и каждого из его предков. Однако чаще требуется верифицировать все элементы управления на форме в ответ на некоторое событие, например, нажатие пользователем кнопки Save или Submit. В. NET 2.0 это становится чрезвычайно просто, причем у вас есть ряд опций для контроля над тем, что будет происходить в процессе верификации.

Если вы хотите произвести верификацию всех элементов управления на форме или их подмножества, определяемого некоторыми общими атрибутами, вы можете вызвать метод Validatechildren Класса ContainerControl. От ContainerControl Производятся Form, UserControl И другие классы, поэтому они наследуют эту функцию верификации. Имеются две перегрузки метода Validatechildren, Одна без аргументов, а другая с перечислимым аргументом типа ValidationConstraints .

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *