Верификация вверх по иерархии элементов управления

в случае типичной формы в

Класс ContainerControl Определяет метод Validate, Который верифицирует текущий элемент управления, обладающий фокусом, а затем пойдет вверх по иерархии элементов управления, верифицируя каждого из его предков. В случае типичной формы в стиле диалога каждый элемент управления является дочерним элементом формы, так что единственным предком каждого элемента управления будет сама форма. Сам по себе класс Form Ничего не делает в ответ на верификацию, поскольку непосредственно не содержит вводимых данных. Но если форма содержит другие контейнерные элементы управления, такие, как пользовательские элементы управления или расслоенные контейнеры, то непосредственным предком любого элемента управления, содержащегося в контейнере, будет этот контейнер, а предком контейнера будет форма. Метод Validate Часто использовался в приложениях. NET 1.1 для программной проверки того, что все элементы управления на форме находятся в действительном состоянии. Однако поскольку Validate Проверяет только текущий элемент управления в фокусе и его предков, для проверки нужно было итерировать по всем элементам управления в коллекции Controls Формы, устанавливая фокус на каждый из них и вызывая затем Validate. Такая методика была утомительной и проблематичной, поэтому требовался какой-то лучший подход. Вы как прежде можете вызывать Validate Для формы или элемента управления в фокусе, чтобы программно активировать верификацию, но обычно вы скорее всего предпочтете воспользоваться новым методом ValidateChildren.

Метод Validate Возвращает True, Если верификация успешна, что опять же определяется тем, устанавливает ли элемент управления в фокусе свойство Cancel Аргумента события в true. Если элемент управления в фокусе или любой элемент управления выше в иерархии говорит «нет», устанавливая свойство Cancel, То метод Validate Возвращает False, И ваш код должен принять соответствующие меры для оповещения пользователей о проблеме, и обычно вы захотите предотвратить продолжение работы, пока ошибка не будет исправлена.

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

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