Компонент Button (кнопка). Взаємодія компонент Label та Button. Подія MouseMove
Перед вивченням даної теми рекомендується ознайомитись з попередньою темою:
Зміст
- 1. Загальні відомості про компонент Button
- 2. Властивості компонента Button
- 3. Події елементу управління Button
- 4. Приклад використання компонентів Label та Button. Програмування події MouseMove
- 4.1. Умова задачі
- 4.2. Виконання
- 4.2.1. Створення проекту
- 4.2.2. Розміщення елементів управління Label, Button. Налаштування елементів управління
- 4.2.3. Програмування події Click компонента button1. Вивести розміри форми
- 4.2.4. Програмування події Click компонента button2. Показати або приховати компоненти форми
- 4.2.5. Програмування обробника події MouseMove компонента label2
- Споріднені теми
Пошук на інших ресурсах:
1. Загальні відомості про компонент Button
Компонент Button представляє собою кнопку на формі (рисунок 1).
Рисунок 1. Компонент Button. Розміщення на панелі Toolbox
Компонент Button є класом, який успадкований від абстрактного класу ButtonCase та реалізує інтерфейс IButtonControl. В свою чергу, клас ButtonCase є успадкований від класу Control.
У множині класів .NET Framework існує 3 типи кнопок, які успадковані від ButtonCase: Button, CheckBox, RadioButton.
Клас (компонент) Button має набір властивостей, які доступні як програмно, так і в режимі проектування (рисунок 2).
Рисунок 2. Властивості компонента Button
Нижче подано базові властивості компонента Button.
⇑
2. Властивості компонента Button
Основні властивості елементу управління Button наведені нижче. Тут наведені базові властивості які відрізняються від властивостей компонента Label. Більш детально про компонент Label (мітка) можна прочитати тут.
Властивіть | Опис |
Name | Це є назва екземпляру об’єкту типу Button. |
AutoSize | Якщо AutoSize=True, то елемент управління змінює свій розмір автоматично в залежності від контенту (тексту, який набраний у властивості Text). |
AutoSizeMode | Визначає режим, за яким елемент управління Button змінює свій розмір. Ця властивість діє тільки якщо AutoSize=True. |
DialogResult | Результат повернення з модальної форми, яка викликалась методом ShowDialog().
Наприклад. Якщо у проекті створено нову форму типу Form2, яка містить кнопку OK, то виклик форми та перевірка результату повернення з форми може бути приблизно таким: // Оголосити екземпляр типу форма Form2 f2 = new Form2(); // Якщо результат поверення з форми OK, то виконати якісь дії if (f2.ShowDialog() == DialogResult.OK) { // дії, які потрібно виконати якщо натиснуто OK // ... } |
FlatAppearance | Для кнопок, у яких значення FlatStyle=FlatStyle.Flat, визначає зовнішній вигляд границі та кольору, які використовуються для перевірки та стану мишки. |
FlatStyle | Визначає зовнішній вигляд елементу управління, коли користувач рухає мишкою поверх елементу управління і клікає на ньому. |
Padding | Визначає внутрішні відступи від країв елементу управління, що визначають область цього елементу |
Size | Розмір елементу управління в пікселях |
TabIndex | Позиція табуляції. Ця позиція має зміст, коли TabStop=True |
TabStop | Якщо значення TabStop=True, то елемент управління може приймати фокус введення з допомогою клавіші Tab. |
Text | Текст, асоційований з елементом управління |
TextAlign | Вирівнювання тексту, що буде відображатись в елементі управління |
TextImageRelation | Визначає, позицію зображення відносно тексту кнопки. Ця властивість має сенс, якщо завантежене хоча б одне зображення для елементу управління кнопка |
⇑
3. Події елементу управління Button
Наступна таблиця відображає основні події елементу управління типу Button.
Подія | Опис |
Click | Клік на кнопці |
MouseClick | Клік на кнопці з отриманням більш детальної інформації з допомогою класу MouseEventArgs |
Enter | Виникає, коли кнопка отримує фокус введення |
Leave | Виникає, коли елементу управління (кнопка) втрачає активність (фокус) на формі |
KeyDown | Виникає, коли натиснута клавіша (в тому числі і клавіші Alt та Ctrl). Дозволяє отримати код натиснутої клавіші, який описується в зчисленні Keys |
KeyPress | Виникає, коли елемент управління має фокус і натиснута та відпущена клавіша. Дозволяє отримати код символа типу char |
KeyUp | Виникає, коли відпущена клавіша. Так само як і для події KeyDown дозволяє отримати код натиснутої клавіші, описаний в зчисленні Keys |
PreviewKeyDown | Виникає перед подією KeyDown в момент коли натиснута клавіша і фокус введення є над кнопкою |
MouseDown | Виникає, коли покажчик миші є над компонентом і кнопка миші натиснута |
MouseEnter | Виникає, коли мишка входить у видиму частину елементу управління |
MouseHover | Виникає, коли мишка залишається всередині елементу управління деякий час |
MouseLeave | Виникає, коли мишка залишає видиму частину елементу управління |
MouseMove | Виникає, коли курсор миші рухається над областю кнопки |
MouseUp | Виникає, коли покажчик миші є над компонентом і кнопка миші відпущена |
⇑
4. Приклад використання компонентів Label та Button. Програмування події MouseMove
4.1. Умова задачі
Розробити проект, який містить 2 кнопки (Button) та 2 мітки (Label). Дослідити роботу компонент виконавши наступні пункти.
4.2. Виконання
4.2.1. Створення проекту
Засобами Microsoft Visual Studio створити проект. Приклад створення проекту типу “C# – Windows Forms” можна підглянути тут.
Назвати проект “Demo Program”. Для цього використати властивість Text основної форми Form1.
⇑
4.2.2. Розміщення елементів управління Label, Button. Налаштування елементів управління
Розмістити на формі два елементи управління типу Label та два елементи управління типу Button. У результаті, система створить чотири екземпляри з іменами label1, label2, button1, button2 (рисунок 3).
Рисунок 3. Початковий стан форми та елементів управління на формі
Налаштувати наступні властивості елементів управління форми:
- label1.Text = “Form Size = “ (властивість Text елементу управління label1);
- label2.Text = “Catch me!”;
- button1.Text = “Form Size”;
- button2.Text = “Hide/Show”.
Після корегування розмірів деяких елементів управління та налаштування форма матиме вигляд як показано на рисунку 4.
Рисунок 4. Вигляд форми після налаштування елементів управління
⇑
4.2.3. Програмування події Click компонента button1. Вивести розміри форми
На цьому етапі потрібно запрограмувати обробник події Click компонента button1. Більш детально про особливості програмування події у Microsoft Visual Studio можна підглянути тут.
Текст обробника події button1_Click() наступний:
private void button1_Click(object sender, EventArgs e) { // Обробник події кліку на кнопці button1. // Вивести розміри форми, використати властивості Width, Height. label1.Text = String.Format("Form Size: W = {0}, H = {1}", this.Width, this.Height); }
Як видно з вищенаведеного коду, за натиском на кнопці button1 у компоненті label1 виводиться інформація про поточні розміри форми. Якщо при виконанні програми спробувати змінити розміри форми і натиснути кнопку button1, то нові розміри знову відобразяться у label1.
⇑
4.2.4. Програмування події Click компонента button2. Показати або приховати компоненти форми
При натиску на кнопці button2 (“Show/Hide”) повинні бути прихованими або відображеними компоненти label1, label2, button2. Відповідно до цього, в обробнику події Click компонента button2 потрібно ввести наступний текст
private void button2_Click(object sender, EventArgs e) { // Приховати/Показати все - властивість Visible button1.Visible = !button1.Visible; label1.Visible = !label1.Visible; label2.Visible = !label2.Visible; if (button1.Visible) button2.Text = "Hide"; else button2.Text = "Show"; }
⇑
4.2.5. Програмування обробника події MouseMove компонента label2
Подія MouseMove будь-якого елементу управління виникає, коли мишка рухається над прямокутною областю цього елементу управління. Компонент типу Label також має можливість програмувати цю подію.
В обробнику події label2_MouseMove() вводиться наступний код
private void label2_MouseMove(object sender, MouseEventArgs e) { // Подія MouseMove для компонента label2 означає, що // потрібно зсунути мітку // 1. Спроба розміщення області label2 label2.Left = label2.Left + 10; label2.Top = label2.Top - 10; // 2. Перевірка, чи мітка вийшла за межі форми за координатою X if ((label2.Left < -20) || (label2.Left > this.Width - 20)) { // Якщо мітка вийшла за межі форми за координатою x, // то змінити горизонтальну позицію label2 label2.Left = 10; } // 3. Перевірка, чи мітка вийшла за межі форми за координатою Y if ((label2.Top < -10) || (label2.Top > this.Height - 10)) { // Якщо мітка за межами форми за координатою Y, // то змінити вертикальну позицію label2 label2.Top = 80; } }
Після запуску програми на виконання перемістити мишку всередину прямокутної області, що зайнята міткою label2, не вдасться.
⇑
Споріднені теми
- Створення п’ятикутної форми
- Приклад розробки успадкованої форми
- Компонент Label. Програмне створення компоненту Label. Клас MessageBox. Зчислення DialogResult
⇑