Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_7.docx
Скачиваний:
3
Добавлен:
10.07.2019
Размер:
106.53 Кб
Скачать

Надаємо фокус у коді.

Фокус можна переводити на об'єкт і програмним шляхом. Доповнимо наш проект процедурою:

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

Відбувається, коли покажчик миші покидає елемент управління

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