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

Проверка данных вводимых пользователем

В ряде случаев необходимо проверять данные сразу же после их ввода, что позволяет осуществлять проверку полей по мере их заполнения. Далее рассмотрим каким образом применять события элементов управления для проверки вводимых данных, а также задавать интервалы допустимых входных значений при помощи некоторых свойств элемента управления TextBox.

Применение свойств элемента управления TextBox к проверке данных вводимых пользователем

Чаще всего для приема данных от пользователя применяется элемент управления TextBox. Некоторые из его свойств позволяют ограничивать диапазон значений, вводимых в текстовое поле, например: MaxLength, PasswordChar, Readonly, Multiline.

MaxLength

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

PasswordChar

Свойство PasswordChar позволяет скрывать от посторонних глаз значение, вводимое во время выполнения. Например, если сделать значением свойства PasswordChar звездочку (*), текстовое поле будет отображать все вводимые пользователем символы как звездочки. Этот прием обычно используют для защиты паролей в окнах входа.

Для замены пароля вы можете назначить любой допустимый символ. Независимо от назначенного символа, свойство Text всегда содержит то значение, которое реально ввел пользователь.

ReadOnly

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

Multiline

Свойство Multiline определяет, одна или много строк в поле. Если оно установлено в true, пользователь может вводить многострочный текст, завершая строки символом возврата каретки. Введенные строки сохраняются в виде строкового массива в наборе TextBox.Lines. Чтобы получить нужную строку, следует указать ее индекс в массиве.

Применение событий для проверки на уровне поля

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

События KeyDown и KeyUp

Нажатие и освобождение любой клавиши сопровождается генерацией события KeyDown и KeyUp соответственно. Источником событий является элемент управления, обладающий фокусом ввода. Элемент управления, генерировавший событие, передает сведения о нажатой (или отпущенной) клавише (или сочетании клавиш) через экземпляр класса KeyEventArgsкласса, описывающего сочетание клавиш. В сигнатуре метода, обрабатывающего событие KeyDown или KeyUp, должен быть параметр типа KeyEventArgs.

Чаще всего события KeyDown и KeyUp используют, чтобы определить, нажаты ли клавиши Alt, Ctrl или Shift. Результат передается обработчику соответствующего события через ссылку на экземпляр класса KeyEventArgs. Его свойства Alt, Ctrl и Shift возвращают значения типа Boolean, указывающие, были ли нажаты соответствующие клавиши. Значение True свидетельствует о том, что клавиша была нажата, а falseо том, что нет. Ниже показан пример обработчика события KeyDown, проверяющего нажатие клавиши Alt:

private void textBox2_KeyDown(object sender, KeyEventArgs e)

{

if (e.Alt == true)

MessageBox.Show("Нажата кнопка ALT!!!");

}

Свойство KeyEventArgs.KeyCode позволяет определить, какая именно клавиша спровоцировала событие. Это свойство возвращает код нажатой или отпущенной клавиши (соответственно при событиях KeyDown или KeyUp). Ниже показан пример простого обработчика события, отображающего сообщение с кодом нажатой клавиши:

private void textBox2_KeyDown(object sender, KeyEventArgs e)

{

MessageBox.Show("Нажата кнопка: " + e.KeyCode.ToString());

}

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