Подія MouseHover

Трішки ускладнимо попередню задачу. Додамо для об’єкта Label1 обробку ще однієї події — MouseHover. Подія MouseHover настає, коли користувач вказівником миші «зависає» над якимось об’єктом, причому саме «зависає», а не просто проводить мишею над об’єктом. Можна також сказати, що подія MouseHover відбувається коли вказівник миші наведено на елемент.

Примітка

Існує ще подія MouseEnter (Війти), коли вказівник миші входить в межі області елемента керування (в нашому випадку мітки Label1). Проте зараз ми використаємо саме подію MouseHover.

Таким чином. Програма в нашому прикладі має містити на екранній формі текстову мітку Label та кнопку Button. Мітка буде відображати текст "Microsoft Visual Basic 2010", а при кліку по кнопці, на якій як і раніше написано «Натисни мене», відкриється діалогове вікно з написом «Всім привіт!».

Крім того, коли вказівник миші виявиться наведеним на текстову мітку (та саме подія MouseHover), повинно відкритись вікно з текстом «Подія Hover відбулася!»

 

Для вирішення цієї задачі запустимо Visual Studio 2010, створимо новий проект. Виберемо шаблон Windows Forms Application. В якості імені проекту введемо ім’я Hover і натиснемо кнопку OK.

В дизайнері форми з панелі елементів перетягнемо на форму мітку Label та кнопку Button, а потім трішки зменшимо розмір форми на свій смак.

Тепер додамо три обробника подій в програмний код. Для цього в панелі Свойства потрібно клікнути на значок блискавки та подвійними кліками послідовно обрати:

  • Подію завантаження форми Form_Load;
  • Подію – клік на кнопці Button1_Click;
  • Подію Label1_MouseHover.

При цьому відбувається перехід на вкладку програмного коду Form1.vb, і середовище Visual Studio 2010 згенерує три пустих обробника подій. Наприклад, обробник останньої події матиме вигляд:

Private Sub Label1_MouseHover(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _

                              Handles Label1.MouseHover

End Sub

Між цими двома стрічками додамо команду виклику діалогового вікна:

MessageBox.Show("Подія Hover відбулася")

Тепер перевіримо можливості програми – натиснемо клавішу <F5>, «зависаємо» вказівником миші над Label1, натискаємо кнопку Button1.

Ура! Все працює!

Примітка

Погляньте на властивості кожного об’єкту в панелі властивостей. Ви бачите багато, як їх тут багато. Коли ви змінюєте якусь властивість вона буде виділена напівжирним шрифтом. Зручно! Але все таки зручніше властивості об’єктів назначати (встановлювати) безпосередньо в програмному коді. ЧОМУ? Кожен програміст має в своєму арсеналі багато вже готових фрагментів, які він використовує в своїй черговій новій програмі. Програмісту досить лише пригадати де він програмував ту чи іншу ситуацію. Але програми написані раніше мають властивість забуватись. І через деякий час досить складно пригадати яким елементам та які саме властивості призначались. Тому при написані програм на перше місце виходять зрозумілість, ясність, очевидність написаного програмного коду. Для цього кожна система програмування має ті чи інші засоби. Крім того сам програміст повинен дотримуватись деяких правил, допомагаючи йому працювати ефективно.

Назначати властивості об’єктів у програмному коді зручно при обробці події Form1_Load, тобто подія завантаження форми в оперативну пам'ять при запуску програми.

Створимо простий обробник цієї події. Для цього. Як і в попередніх випадках, можна вибрати потрібну подію в панелі властивостей об’єкта, а можна простіше – двічі клікнути в межах форми на вкладці Form1.vb [Design]. В будь-якому випадку на вкладці програмного коду буде сформовано пустий обробник події. Відмітимо, що для форми подією за замовчуванням, є подія завантаження форми Form1_Load, для командної кнопки Button та мітки Label такою подією є одиночний клік на цих елементах керування.

Тобто, якщо двічі клікнути в дизайнері форми по кнопці, то отримаємо в програмному коді пустий обробник події кліку по кнопці Button1_Click, аналогічно отримуємо програмний код для обробки кліку по мітці Label.

Повернемось до події завантаження форми – для неї середовище програмування згенерувало пустий обробник події:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                       Handles MyBase.Load

End Sub

 

Між двома цими стрічками зазвичай вставляють властивості різних об’єктів, і навіть часто пишуть багато стрічок програмного коду. Ми ж тут назначимо властивості Text об’єкта Label1 значення Microsoft Visual Basic 2010:

Label1.Text = "Microsoft Visual Basic 2010"

Аналогічно для об’єкта Button1:

Button1.Text = "Натисни мене"

А також ім’я форми, але оскільки ми змінюємо властивості об’єкта Form1 всередині підпрограми обробки події, пов’язаної з формою, до форми слід звертатись або через посилання Me, або використовуючи ключові слова MyBase або MyClass:

Me.Text = "Подія Hover"

або:

MyClass.Text = "Подія Hover"

або:

MyBase.Text = "Подія Hover"

Необов’язково писати кожну літеру наведених команд. Наприклад, для першої стрічки достатньо написати la – з’явиться випадаюче меню, з якого ви зможете вибрати необхідні для даного контексту ключові слова. Це працює IntelliSense — дуже потужний та корисний сучасний засіб редагування програмного коду (його іноді називають суфлером). І якщо ви з Visual Studio 2010 перейдете в іншу систему програмування, де подібний сервіс відсутній, то почнете відчувати сильний дискомфорт. Користуючись функцією IntelliSense, дуже зручно після введення оператора розширення області дії або оператора-крапки – в обох випадках вводимо символ крапки (.) – отримувати список допустимих варіантів подальшого введення. Можна виділити елемент та натиснути клавішу <Tab> або <Enter> або двічі клікнути по елементу, щоб додати його в код. Тому не слід боятись занадто довгих ключових слів, довгих назв об’єктів, властивостей, методів, імен змінних. Система підказок сучасних систем програмування значно полегшує всю нетворчу роботу. Ось чому в сучасних програмах можна зустріти досить довгі імена ключових слів, імена змінних і т.д. Тому ми також можемо використовувати дану опцію надаючи в своїх програмах зручні та зрозумілі назви ключових слів, змінних, навіть на своїй рідній українській мові! Тому що для нас на перший план виходить ясність та зрозумілість написаного коду, а надлишковість та довжину назв компенсується системою підказок.

Написавши останню стрічку коду. Ми маємо побачити на екрані програмний код, представлений в лістингу:

Public Class Form1

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                           Handles MyBase.Load

        'Me.Text = "Подія Hover"

        'MyClass.Text = "Подія Hover"

        MyBase.Text = "Подія Hover"

        Label1.Text = "Microsoft Visual Basic 2010"

        Button1.Text = "Натисни мене"

    End Sub

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  _

                              Handles Button1.Click

        MessageBox.Show("Всім привіт!")

    End Sub

 

    Private Sub Label1_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                                    Handles Label1.MouseHover

        MessageBox.Show("Подія Hover відбулася")

    End Sub

 

End Class

 

Коментарі, які пояснюють роботу програми, у вікні редактора виділені зеленим кольором, щоб в тексті вони виразно відділялись від інших елементів програми. На мові Visual Basic коментарі пишуть після одиночного апострофа (‘) або ключового слова  Rem (від англ. remark — примітка).

Порада

Якщо в даний момент ваша клавіатура знаходиться в режимі введення російських або українських літер, то зручно, не перемикаючись в інший режим, ввести апостроф, набравши на боковій клавіатурі 39, утримуючи при цьому натиснутою клавішу <Alt>

Навіть якщо вам здається написаний код досить простим і очевидним, додайте коментар, оскільки навіть найпростіший код з часом забувається. Крім цього доцільно на початку програми написати коментар-пояснення щодо її призначення та функціонал, тобто «преамбулу». Я постараюсь у всіх наступних прикладах слідувати цьому простому, але досить важливому правилу.

На рисунку наведено приклад роботи програми.

Завантажити саму програму та перевірити її працездатність можна ТУТ!

Зазвичай в редакторах програмного коду використовується моноширинний шрифт, в якому всі символи мають однакову ширину – від крапки до великої літери «Ш». За замовчуванням в редакторі програмного коду Visual Basic 2010 заданий шрифт Consolas. Але його можна змінити вибравши пункт меню Сервис – Параметры – Среда – Шрифты и цвета ( Tools | Options | Environment | Fonts and Colors).

Тепер закриємо проект: Файл – Закрыть проект ( File | Close Project).  Система запропонує нам зберегти проект, збережемо його під іменем "подія Hover".