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

Использование события KeyDown и KeyUp

Обработчики этих событий могут использоваться для анализа нажатия функциональных клавиш, навигационных клавиш, клавиш редактирования. Коды этих клавиш не относятся к стандартным ASCII-кодам. Эти события перехватывают нажатие комбинации клавиш, вроде Сtrl + Del, Shift + Ctrl + Del и т.д.

Использование события KeyPreview

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

Private Sub Form1_Load()

события формы будут генерироваться до событий

‘элементов управления.

KeyPreview=True

End Sub

Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)

Select Case KeyCode сообщаем какая клавиша нажата

Case vbKeyF1

MsgBox "нажата клавиша F1"

 операторы 

Case vbKeyF2

MsgBox "нажата клавиша F2"

 операторы 

Сase Else

End Select

End Sub

VB имеет класс элементов управления Control, к которому относятся все элементы управления на форме. Тип элемента управления анализируется с помощью функции TypeOf. Данный класс элементов управления в сочетании с функцией TypeOf можно успешно использовать для контроля правильности ввода данных на уровне формы.

Пример 7.1. Отключение элемента управления (кнопка cmdOK), пока не будут заполнены все поля ввода.

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

Dim ctl As Control

For Each ctl In Controls

If TypeOf ctl Is TextBox Then

If ctl.Text="" Then

cmdOK.Enabled=False

Exit Sub

End If

End If

Next ctl

cmdOk. Enabled = True

End Sub

В примере 7.1. с помощью цикла For Each просматриваются все элементы управления формы и проверяется состояние текстовых полей. Если хотя бы одно поле TextBox пусто, то свойству Enebled кнопки cmdOk присваивается значение False. Когда все поля TextBox будут заполнены, кнопка cmdOk становится доступной.

7.1.3. Реализация проверки данных на уровне полей формы

Конроль на уровне полей форм позволяет обнаруживать и устранять ошибки в момент ввода. Для этой цели можно использовать и некоторые свойства элемента TextBox: MaxLength; PassWоrdChar, Locked.

Свойство MaxLength задает максимальное количество символов, вводимых в текстовое поле. Когда пользователь пытается ввести в поле больше символов, чем указано в свойстве MaxLength, система подает звуковой сигнал.

Свойство PassWоrdChar позволяет скрывать вводимые символы, заменяя их звездочками. В качестве маскирующего можно использовать любой символ, но чаще применяют именно звездочки. Такой прием часто используется для скрытия паролей в диалоговых окнах регистрации, а также для ограничения доступа.

Свойство Locked запрещает редактирование поля ввода вводом данных с клавиатуры, но оставляет возможность программного изменения свойства Text.