C#. Windows Forms. Компонент Label. Програмне створення елементу управління Label. Клас MessageBox

Компонент Label. Програмне створення елементу управління Label. Клас MessageBox. Зчислення DialogResult


Зміст


Пошук на інших ресурсах:

1. Компонент Label. Властивості компоненту Label

Компонент типу Label представляє собою статичний текст на екрані монітора. На рисунку 1 зображено розміщення компонента Label на панелі елементів у системі Microsoft Visual Studio 2022.

C#. Windows Forms. Компонент Label. Размещение компонента Label на форме

Рисунок 1. Компонент Label. Размещение компонента Label на форме

Основні властивості компонента Label наведені нижче.

Властивість

Опис

Name Назва екземпляру (об’єкту) типу Label
Anchor Визначає краї контейнера, до якого прив’язаний визначений елемент управління. Коли елемент управління прив’язаний до краю, відстань між найближчим краєм елементу управління та вказаним краєм буде залишатись постійною.
AutoEllipsis Якщо AutoEllipsis = True, то включається автоматична обробка тексту, який виходить за межі ширини мітки (рисунок 2). Дана властивість діє тільки, якщо властивість AutoSize = False.

C#. Windows Forms. Компонент Label. Вплив властивості AutoEllipsis на вигляд тексту

Рисунок 2. Вплив властивості AutoEllipsis на вигляд тексту “Hello world!”: a) AutoEllipsis = True; b) AutoEllipsis = False

AutoSize Якщо AutoSize=True, то ширина компоненту типу Label автоматично змінюється в залежності від розміру шрифта (рисунок 3). Якщо AutoSize=False, то можна задавати фіксовані розміри меж елементу Label, в які буде вписуватись текст.

C#. Windows Forms. Вплив властивості AutoSize на вигляд тексту

Рисунок 3. Вплив властивості AutoSize на вигляд тексту “Hello world”: a) AutoSize = True;     b) AutoSize = False

BackColor Колір фону області, в якій відображається елемент управління типу Label
BorderStyle Вигляд межі прямокутної області елементу управління Label
ContextMenuStrip Властивість, що містить посилання на контекстне меню, яке викликається при натиску правої кнопки мишки в області елементу управління Label. Для того щоб використовувати контекстне меню, це меню має бути попередньо сформоване. Для формування контекстного меню використовується елемент управління ContextMenuStrip
Cursor Визначає вигляд курсору мишки коли покажчик мишки знаходиться в області вікна елементу управління Label
Dock Визначає, які межі елементу управління є зв’язані з контейнером.
Enabled Визначає, чи елемент управління є заблокований. Якщо Enabled = True, то елемент управління не є заблокований, наприклад може реагувати на кліки мишкою.
Font Вигляд шрифту тексту (розмір, параметри тексту)
ForeColor Колір переднього плану компонента – це є колір тексту, який відображається
GenerateMember Якщо GenerateMember=True, то генерується змінна для цього компонента. Ім’я змінної встановлюється в значення, яке визначене в полі Name. Ця опція необхідна, коли елемент управління типу Label використовується у програмному коді для виведення інформації що формується динамічно. Якщо елемент управління Label використовується тільки для відображення незмінюваного тексту, то доцільно встановити GenerateMember=False для того щоб зекономити пам’ять. Щоб переглянути результат дії цієї властивості, потрібно перейти у частину Form1.Designer.cs класу форми, в якій відображаються усі елементи управління форми.
Image Посилання на зображення, яке може бути встановлене цьому елементу управління. Зображення відображається за текстом.
Location Координата (X, Y) верхнього-лівого кута елементу управління
Locked Якщо Locked=True, то неможливо змінювати позицію та розмір елементу управління на формі (позиція блокується) під час проектування.
MaximumSize Задає максимально можливий розмір (Width, Height) елементу управління. Якщо значення MaximumSize=(0, 0), то елемент управління може приймати довільний розмір
MinimumSize Задає мінімально можливий розмір (Width, Height) елементу управління. Якщо значення MinimumSize=(0, 0), то елемент управління може приймати довільний розмір
Modifiers Задає модифікатор доступу для змінної (екземпляру) типу Label, при умові що GenerateMember=True
Size Розмір елементу в пікселях
TabIndex Порядковий номер в позиціях табуляції, що змінюються з допомогою клавіші TAB
Text Текст, що асоціюється з елементом управління
TextAlign Задає позицію тексту в межах області, яка призначена для відображення елементу управління Label. Дана опція має сенс якщо AutoSize=false
UseWaitCursor Якщо UseWaitCursor=True, то властивість Cursor=WaitCursor
Visible Якщо Visible=False, то елемент управління невидимий на формі

 

2. Події компоненту Label

Події, на які реагує компонент Label, описуються в наступній таблиці:

Подія Опис
Click Клік з допомогою мишки на елементі управління Label
DoubleClick Подвійний клік мишкою на елементі управління Label
MouseClick Клік з допомогою мишки на елементі управління Label. На відміну від події Click дозволяє отримати більш повну інформацію про клік: яка клавіша мишки натиснута, координата (x, y) натиску та інше. Вся інформація отримується з класу MouseEventArgs
MouseDoubleClick Подвійний клік мишкою на елементі. Порівняно з DoubleClick додає екземпляр класу MouseEventArgs, який містить усю необхідну інформацію про зроблений клік (координату (x, y), яка клавіша натиснута і т.д.).
Paint Використовується для рисування графіки в області елементу управління

 

3. Програмне створення елементу управління Label. Приклад

На формі потрібно розмістити кнопку, наприклад button1 і в обробнику Click цієї кнопки набрати наступний текст:

...

private void button1_Click(object sender, EventArgs e)
{
  // Програмне створення елементу управління типу Label
  // 1. Оголосити екземпляр типу Label
  Label myLabel = new Label();

  // 2. Встановити батьківський клас,
  //    у нашому випадку батьківський клас - це Form.
  //    Властивість Parent має тип Control
  myLabel.Parent = this.Parent;

  // 3. Встановити текст мітки
  myLabel.Text = "Hello!";

  // 4. Встановити розміщення на формі в точці (10, 80)
  myLabel.Location = new Point(10, 80);

  // 5. Властивість AutoSize
  myLabel.AutoSize = true;

  // 6. Задати ім'я екземпляру
  myLabel.Name = "myLabel";

  // 7. Додати у властивість Controls класу Form.
  //    Цю властивість клас Form успадковує від класу Control.
  //    Тип властивості Controls - ControlCollection,
  //    тобто клас ControlCollection визначений у класі Control.
  //    Властивість Controls - це набір дочірніх елементів управління.
  this.Controls.Add(myLabel);
}

...

Після запуску програми та натиску на кнопці з’явиться мітка Label.

 

 4. Клас MessageBox. Призначення. Приклад

Статичний клас MessageBox представляє діалогову вікно, в якому можна виводити інформацію (Рисунок 4). Основним методом класу, що виводить діалогове вікно, є метод Show() який має багато перевантажених реалізацій.

C#. Windows Forms. Вікно, що відкривається у результаті виклику методу Show() класу MessageBox

Рисунок 4. Вікно, що відкривається у результаті виклику методу Show() класу MessageBox (один з випадків)

Використання класу є ефективним, коли потрібно виводити швидкі повідомлення “на льоту” з базовим набором стандартних кнопок та їх швидкою обробкою. Таким чином, зникає потреба у створенні зайвих дрібних діалогових форм, які ускладнюють сприйняття структури всього проекту.

Для демонстрації використання класу MessageBox потрібно розмістити кнопку на формі (наприклад button2) і запрограмувати обробник події кліку на цій кнопці.

 

...

private void button2_Click(object sender, EventArgs e)
{
  // Клас MessageBox - представляє діалогове вікно, в якому
  // виводяться поширені повідомлення з підтвердженням
  // відповіді, наприклад, Ok, No і т.д.

  // 1. Виклик простого вікна з текстом
  MessageBox.Show("This is a message");

  // 2. Виклик ще одного вікна з заголовком
  MessageBox.Show("This is a message", "This is a caption");

  // 3. Виклик вікна з кнопками Yes, No, Cancel
  // 3.1. Створити кнопки Yes, No, Cancel
  MessageBoxButtons mbb;
  mbb = MessageBoxButtons.YesNoCancel;

  // 3.2. Вивести вікно і перевірити відповідь користувача
  DialogResult dr;
  dr = MessageBox.Show("This is YesNoCancel message.", "Title", mbb);

  if (dr == DialogResult.Yes)
    MessageBox.Show("Your choice: Yes");
  else
  if (dr == DialogResult.No)
    MessageBox.Show("Your choice: No");
  else
    MessageBox.Show("Your choice: Cancel");

  // 3.3. Вивести вікно з заголовком і перевірити відповідь - інший варіант
  mbb = MessageBoxButtons.OKCancel;
  dr = MessageBox.Show("Please, select OK or Cancel", "OK-Cancel window", mbb);

  if (dr == DialogResult.OK)
    MessageBox.Show("You select OK");
  else
    MessageBox.Show("You select Cancel");
}

...

Як видно з вищенаведеного прикладу, робота методів класу MessageBox поєднується з використанням зчислення DialogResult. У цьому зчисленні оголошуються константи, що відповідають кодам базових стандартних кнопок, які використовуються в інтерфейсі Windows. Наприклад, описуються кнопки Ok, Cancel, Yes та інші.

 


Споріднені теми