Компонент Label. Программное создание элемента управления Label. Класс MessageBox. Перечисление DialogResult
Содержание
- 1. Компонент Label. Свойства компонента Label
- 2. События компонента Label
- 3. Программное создание элемента управления Label. Пример
- 4. Класс MessageBox. Назначение. Пример
- Связанные темы
Поиск на других ресурсах:
1. Компонент Label. Свойства компонента Label
Компонент типа Label представляет собой статический текст на мониторе. На рисунке 1 показано размещение компонента Label на панели элементов в системе Microsoft Visual Studio 2022.
Рисунок 1. Компонент Label. Размещение компонента Label на форме
Основные свойства компонента Label приведены ниже.
Свойство |
Описание |
Name | Название экземпляра (объекта) типа Label. |
Anchor | Задает края контейнера, к которому привязан определенный элемент управления. Когда элемент управления привязан к краю, расстояние между ближайшим краем элемента управления и указанным краем будет оставаться постоянным. |
AutoEllipsis | Если AutoEllipsis = True, то включается автоматическая обработка текста, выходящего за пределы ширины метки (рисунок 2). Данное свойство действует только если свойство AutoSize = False.
Рисунок 2. Влияние свойства AutoEllipsis на вид текста «Hello world!»: a) AutoEllipsis = True; b) AutoEllipsis = False |
AutoSize | Если AutoSize=True, ширина компонента типа Label автоматически изменяется в зависимости от размера шрифта (рисунок 3). Если AutoSize=False, можно задавать фиксированные размеры границ элемента Label, в которые будет вписываться текст.
Рисунок 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(), который имеет много перегруженных реализаций.
Рисунок 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 и другие.
⇑
Связанные темы
⇑