Компонент ErrorProvider

Оповещение пользователя об ошибках ввода

Проверка на уровне формы

Проверка на уровне формы позволяет одновременно проверить все поля формы. Для подобной проверки обычно применяют процедуру, которая вызывается, когда пользователь готов открыть другую форму; более совершенный способ — обработка на уровне формы события, связанного с клавиатурой. Централизованная обработка событий, связанных с клавиатурой, позволяет управлять вводом данных в любое поле формы.

Например, можно написать метод, активирующий командные кнопки только после заполнения всех полей формы и выполняющий определенные действия в зависимости от того, какие клавиши нажимаются.

Обработку событий на уровне формы реализуют с применением событий KeyPress, KeyDownи KeyUp. Форма автоматически генерирует события клавиатуры, только если на ней нет активированных или видимых элементов управления, в противном случае эти события генерирует элемент управления, получающий фокус.

Чтобы заставить форму автоматически генерировать события клавиатуры, следует установить ее свойство KeyPreviewв trueв результате форма будет генерировать эти события прежде элемента управления, получившего фокус. Предположим, что событие KeyPressобрабатывается и формой, и размещенным на нем текстовым полем, а свойство KeyPreviewформы установлено в true. При нажатии клавиши форма первой генерирует событие KeyPress, поэтому ее обработчик этого события исполняется первым, и только после его завершения будет исполнен обработчик события KeyPressтекстового поля.

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

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

Чтобы вывести более информативное описание ошибки, воспользуйтесь методом MessageBox.Show, отображающим небольшое модальное окно с сообщением. Поскольку это окно — модальное, пользователю не удастся просто игнорировать его и продолжить работу с программой.

Компонент ErrorProvider предоставляет удобный способ оповещения пользователей о допущенных имиошибках ввода. Онпозволяет задать для каждого элемента управления формы текст сообщения, отображаемого при вводе недопустимого значения. Еслидля элемента управления задан текст сообщения об ошибке, то при возникновении ошибки рядом с ним появится соответствующий значок, а если навести на него указатель мыши, отобразится всплывающая подсказка с заданным сообщением. Компонент ErrorProvider расположен в секции WindowsForms панели Toolbox.