- •Тема: «Обработка событий мыши и клавиатуры»
- •1. Обработка событий мыши
- •1.1. Событие Click
- •1.2. Событие DblClick
- •1.3. События MouseDown и MouseUp
- •1.4. Событие MouseMove
- •2. Работа с клавиатурой
- •2.1. Событие KeyPress
- •2.2. События KeyDown и KeyUp
- •3. Упражнения
- •4. Задания для самостоятельного выполнения
Приднестровский государственный университет им. Т.Г. Шевченко
Л А Б О Р А Т О Р Н А Я Р А Б О Т А № 13
Тема: «Обработка событий мыши и клавиатуры»
Цель работы:
изучение событий мыши и клавиатуры;
закрепление темы при создании приложений.
1. Обработка событий мыши
До сих пор нам приходилось иметь дело с двумя событиями, связанными с мышью, Click и DblClick (двойной щелчок). В этой лабораторной работе будет рассказано о других событиях мыши, используемых в Visual Basic. К их числу относятся перемещение мыши и нажатия кнопок – самостоятельно или одновременно с клавишами Shift, Alt и Ctrl. Эти события обрабатываются в процедурах MouseDown и MouseUp, а также MouseMove. В последнем событии удобно отображать и скрывать подсказки, когда указатель мыши переходит над кнопками панели инструментов для отображения в форме графики и иллюстраций используются элементы управления:
1.1. Событие Click
Private Sub объект_Click() |
Возникает при щелчке левой или правой кнопки мыши, при нахождении курсора мыши над объектом. Объекты CheckBox, CommandButton, Listbox или OptionButton реагируют только на щелчок левой кнопки. Кроме того, если у нас существует массив объектов Control Array, то введя переменную индекс в объявление процедуры, можно определить, по какому элементу массива щелкнула мышь. В этом случае объявлять процедуру надо так: |
Private Sub объект_Click (индекс As Integer) |
Индекс и возвратит номер элемента массива. Вот пример кода, когда на форме имеется массив Control Array из трех текстовых полей Text1(0), Text1(1) и Text1(2) и текстовое поле Text2. При щелчке мышью по одному из элементов Text1 в текстовом поле Text2 будет выводиться индекс элемента Control Array. Private Sub Text1_Click(Nomer As Integer) Text2.Text = "Щелкнуто по номеру" & " " & Nomer End Sub При возникновении этого события порождаются события MouseUp и MouseDown. Чтобы различать нажатия клавиш, надо использовать события MouseUp и MouseDown |
1.2. Событие DblClick
Private Sub объект_DblClick()
Private Sub объект_DblClick (индекс As Integer) |
Возникает при двойном щелчке кнопки мыши, при нахождении курсора мыши над объектом. Аналогичен событию Click. |
1.3. События MouseDown и MouseUp
Private Sub объект_MouseDown ([индекс As Integer,] Button As Integer, Shift As Integer, x As Single, y As Single) и Private Sub объект_MouseUp ([индекс As Integer,] Button As Integer, Shift As Integer, x As Single, y As Single) |
Возникает при нажатии (MouseDown) или отпускании (MouseUp) кнопки мыши, при нахождении курсора мыши над объектом. При этом по значению необязательной переменной индекс можно отследить, над каким элементом массива объектов Control Array (если массив существует) нажата клавиша. Также позволяет отследить, какая кнопка мыши нажата (не показывает состояние всех кнопок одновременно, как событие MouseMove), по состоянию переменной Button (1 – левая кнопка, 2 – правая кнопка, 4 – средняя кнопка). Переменная Shift возвращает состояние клавиш Shift, Alt и Ctrl в момент нажатия кнопок мыши (1 – Shift, 2 – Alt и 4 – Ctrl). При удержании больше одной клавиши их значения складываются (Ctrl-Alt = 4+2=6). Значения переменных x и y возвращают текущие координаты курсора мыши (x – по горизонтали, y – по вертикали) в единицах измерения, заданных свойствами ScaleHeight, ScaleWidth. |
