Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_200309.doc
Скачиваний:
39
Добавлен:
24.12.2018
Размер:
4.38 Mб
Скачать

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

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

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

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

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

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

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

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

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

Компонент ErrorProvider

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

Отображение сообщений об ошибках

Метод SetError компонента ErrorProvider позволяет вывести сообщение об ошибке рядом с элементом управления.

Добавим к предыдущей задаче элемент управления ErrorProvider

private void textBox1_Validating(object sender, CancelEventArgs e)

{

if (textBox1.Text == "")

{

textBox1.BackColor = Color.Red;

MessageBox.Show("Значение не введено!!!");

e.Cancel = true;

errorProvider1.SetError(textBox1, "Значение не введено!!!");

}

else

{

errorProvider1.SetError(textBox1, "");

}

}

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

Ряд свойств компонента ErrorProvider определяет способ отображения сообщения об ошибке. Свойство Icon задает значок, отображаемый после элемента управления. Одна форма может содержать несколько экземпляров ErrorProvider, например один, отображающий сообщения об ошибках, а другой — предупреждения, при этом каждому экземпляру ErrorProvider разрешается назначить собственный значок. Другое свойство этого компонента — BlinkStyle — заставляет значок мигать, частоту мигания определяет свойство BlinkRate.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]