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

Лабораторна робота №7. Тема: Робота з мишкою і клавіатурою

Теоретичні відомості

До цих пір в режимі роботи проекту ми користувалися мишкою тільки для того, щоб натискати на кнопки, а клавіатурою - тільки для введення тексту в текстові поля. Однак, можливості миші і клавіатури в VB набагато ширше. VB дозволяє робити мишею і клавіатурою всі ті речі, які ми звикли робити ними в будь-яких графічних та текстових редакторах, іграх та інших додатках Windows. Зокрема, ми можемо з їхньою допомогою управляти поведінкою і рухом об'єктів на формі, малювати мишею лінії, рамочки, змінювати традиційну дію клавіш і так далі.

Перш ніж говорити про мишку і клавіатуру, поговоримо про фокус.

Фокус елементів управління

Що таке фокус? Створимо проект. Помістимо на форму спочатку два текстових поля, а потім дві кнопки. Не навпаки. Запустимо проект. Клацнемо по одній кнопці, по іншій, по одному полю, по іншому. Нічого, звичайно, не відбувається, але зверніть увагу ось на що. Якщо останній раз ви клацнули по кнопці, то вона має дещо інший, ніж у інших кнопок, «натиснутий» вигляд. Це від того, що рамочка навколо неї стала товстішою. А якщо останній раз ви клацнули в текстовому полі, то саме в ньому блимає курсор, а в інших текстових полях не блимає. VB як би показує вам, яким з елементів керування ви користувалися останнім. Можна сказати, що з безлічі різнорідних об'єктів на формі тільки один виділяється, тобто перебуває у фокусі. Кажуть, що в цьому випадку об'єкт має фокус.

На нашій формі 4 об'єкти. У фокусі завжди тільки один з них.

Події отримання і втрати фокусу

У об'єктів, здатних мати фокус, є дві події: Enter, яка виникає в момент отримання об'єктом фокуса, і Leave, яка виникає в момент втрати фокусу. Наведемо приклади процедур для нашого проекту, для цього у вікні коду запишемо такі процедури :

Private Sub Button1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Enter

MsgBox("Кнопка 1 отримала фокус")

End Sub

Private Sub Button2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Enter

MsgBox ("Кнопка 2 отримала фокус")

End Sub

Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter

MsgBox("Текстове поле 1 отримало фокус")

End Sub

Private Sub Button1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Leave

MsgBox ("Кнопка 1 втратила фокус")

End Sub

Private Sub Button2_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Leave

MsgBox ("Кнопка 2 втратила фокус")

End Sub

Private Sub TextBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Leave

MsgBox ("Текстове поле 1 втратило фокус")

End Sub

Запустимо проект. Звернемо увагу, що перше текстове поле вже в фокусі, про що у вікні повідомлення ви вже маєте повідомлення від вашої програми: Текстове поле 1 отримало фокус

Клацнемо по другому текстовому полі. У вікні повідомлення з'являється: Текстове поле 1 втратило фокус

Клацнемо по другій кнопці. У вікні повідомлення з'являється: Кнопка 2 отримала фокус

Клацнемо на першому текстовому полі. У першому вікні повідомлення з'являється: Кнопка 2 втратила фокус, а в другому: Текстове поле 1 отримало фокус

Саме в такому порядку, а не навпаки.

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