- •Лабораторна робота №7. Тема: Робота з мишкою і клавіатурою
- •Теоретичні відомості
- •Фокус елементів управління
- •Події отримання і втрати фокусу
- •Надаємо фокус у коді.
- •Якщо зламалася мишка
- •Подробиці подій миші. Клас MouseEventArgs
- •Приклади використання деяких подій миші
- •Події KeyDown і KeyUp. Клас KeyEventArgs
- •Приклади використання деяких подій клавіатури
- •Варіанти індивідуальних завдань
Надаємо фокус у коді.
Фокус можна переводити на об'єкт і програмним шляхом. Доповнимо наш проект процедурою:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Focus()
Button2.Focus()
End Sub
Запустимо проект. Клацнемо по першій кнопці. Фокус, всупереч очікуванням, переміститься не на неї, а на другу кнопку. А у вікні повідомлення з'являється:
Текстове поле 1 втратило фокус,
Кнопка 1 отримала фокус,
Кнопка 1 втратила фокус,
Текстове поле 1 отримало фокус,
Текстове поле 1 втратило фокус,
Кнопка 2 отримала фокус.
Сталося це завдяки методу Focus. Справа його проста - переводити фокус на свого господаря. Як бачите, одне клацання по кнопці може приводити відразу до декількох подій, наступним один за одним у строго визначеному порядку.
Не всі об'єкти, що отримали фокус, проявляють це зримо. Наприклад, мітка. Якщо фокус на ній, ми цього ніяк не помітимо.
Якщо зламалася мишка
Фокус потрібен хоча б для того, щоб комп'ютер в кожен момент часу знав, який з елементів управління повинен реагувати на клавіатуру. Якщо ви набираєте на клавіатурі текст, то вводитися він буде тільки в те текстове поле, яке у фокусі. Якщо фокус знаходиться на кнопці, то ви можете натискати на неї не тільки мишкою, але і клавішею Enter.
Перекладати фокус з одного об'єкта на інший ви можете вручну клавішею Tab. При цьому фокус зупиняється тільки на тих об'єктах, для яких це має сенс. Так, мітка згаданим способом фокусу не отримає. Порядок пробігання визначається числовим значенням властивості TabIndex кожного елемента управління. Його ви можете бачити у вікні властивостей. Значення 0 отримує елемент управління,що першим з'явився на формі при проектуванні, 1 - другий і т.д. Фокус переходить від об'єкта до об'єкта в порядку зростання цього значення. Так, у попередньому прикладі, створюючи проект, ми на порожній формі першими розмістили текстове поле 1, потім - текстове поле 2. Тому при запуску проекту в фокусі відразу ж виявилося текстове поле 1, а після натискання Tab - текстове поле 2.
Ви можете змінити цей порядок, змінивши для деяких об'єктів значення властивості TabIndex.
Ви можете заборонити фокусу зупинятися на об'єкті при натисканні Tab, встановивши False його властивість TabStop.
Між кнопками фокус можна переміщати і клавішами переміщення курсору.
Робота з мишкою
Основні події пов’язані з мишкою
Більшість елементів управління має вбудовану підтримку для введення з використанням миші. Тому для цього не потрібне написання окремої програми. Іноді від елементу управління може знадобитися більший набір функцій, ніж він підтримує. У Visual Basic є 8 подій, які дозволяють керувати введенням з миші безпосередньо. Вони перераховані в порядку появи в таблиці:
Назва події |
Опис |
Click |
Відбувається, коли натиснуто елемент управління |
DoubleClick |
Відбувається при подвійному натисненні елементу управління |
MouseEnter |
Відбувається, коли покажчик миші попав на елемент управління |
MouseMove |
Відбувається, коли покажчик миші рухається над елементом управління |
МouseHover |
Відбувається, коли покажчик миші зупиняється над елементом управління |
MouseDown |
Відбувається, коли покажчик миші знаходиться над елементом управління і при цьому натиснута кнопка миші (будь-яка) |
MouseUp |
Відбувається, коли покажчик миші знаходиться над елементом управління і при цьому відпускається кнопка миші(будь-яка) |
MouseLeave |
Відбувається, коли покажчик миші покидає елемент управління |