Выбор и использование элементов управления




Розділ 1. ЗАГАЛЬНІ ПОНЯТТЯ

Основные понятия

Элементы управления

Процесс создания Windows-приложения состоит из двух основных этапов:

1. Визуальное проектирование, то есть задание внешнего облика приложения.

2. Определение поведения приложения.

Основным окном разрабатываемого приложения является форма. Визуальное проектирование заключается в помещении на форму элементов управления (компонентов) и задании их свойств (размер, положение на экране, цвет и пр.) и свойств самой формы.

Каждый элемент управления обладает набором свойств. Свойства – это атрибуты (основные характеристики), которые описывают особенности объекта; например, отображают такие характеристики, как цвет, высота, ширина и положение объекта. На внешний вид объекта можно воздействовать (изменять его) во время разработки и выполнения приложения, изменяя его свойства.

Практически все элементы управления реагируют на определённые события от мыши и клавиатуры.

Приложения Windows используют методы (подпрограммы) обработки событий для управления взаимодействием между программой и пользователем и для реакции на действия ОС. Программный код, который пишет программист в C#, будет обеспечивать реакцию на события. Подпрограмма, которая реагирует на событие, называется обработчиком события. C#работает с событиями путём вызова определённых процедур – обработчиков событий. Если процедура не связана с данным событием, то оно игнорируется и выполняется стандартная реакция системы или не производится никакого действия.

Для элементов управления, представленных в C#, существует набор свойств, которые присущи фактически всем элементам управления (табл. 1.1).

Таблица 1.1 – Общие свойства элементов управления

Свойство Описание
Anchor Указывает поведение элемента управления при изменении размеров его контейнера.
BackColor Цвет фона элемента управления
BackgroundImage Устанавливает или возвращает фоновое изображение, размещаемое внутри элемента управления
Cursor Вид указателя мыши при позиционировании указателя на элементе управления
Dock Пристыковывает компонент к краям его контейнера
Enabled Установка значения свойства Enabled равным true означает, что элемент управления может принимать данные, вводимые пользователем. Установка этого значения равным false означает невозможность приема этих данных
Font Шрифт, используемый для отображения текста на элементе управления
ForeColor Цвет текста надписи на элементе управления
Location Положение компонента на поверхности формы или формы на поверхности экрана. Уточняющее свойство х определяет расстояние от левой границы кнопки до левой границы формы/экрана, уточняющее свойство у — от верхней границы кнопки до верхней границы клиентской области
Name Имя элемента управления. Это имя может использоваться для ссылки на элемент управления в коде
Size Размер элемента управления. Уточняещее свойство width определяет ширину, свойство Heigh — высоту
TabIndex Порядковый номер элемента управления в последовательности перехода между элементами управления внутри его контейнера по клавише табуляции
Tabstop Указывает доступность элемента управления по клавише табуляции
Text Содержит текст, связанный с данным элементом управления
ToolTip on… Получает или задает содержимое подсказки в случае помещения на форму соответствующего элемента управления подсказки
Visible Указывает видимость элемента управления во время выполнения

Следует отметить, что существует два основных свойства, отвечающих за точное расположение компонентов на форме. Это Margin и Padding.

Свойство Margin определяет пространство вокруг компонента, которое обеспечивает определенное расстояние между границами этого компонента и другими компонентами.

Свойство Padding определяет пространство внутри компонента, которое обеспечивает определенное расстояние между содержимым компонента (например значением свойства Text) и границами компонента.

На рис. показаны свойства Padding и Margin компонента.

Рис. 1.1 – Различие между свойствами Padding и Margin компонента

Для обоих свойств можно задать отдельные значения как для всех границ (All), для правой (Right), левой (Left), верхненей (Top), нижней (Bottom).

Отдельно следует выделить свойства Anchor и Dock, которые используются на этапе конструирования формы. Задача предотвращения искажения формы при изменении размеров окна пользователем далеко не тривиальна, и раньше для этого требовалось написание множества строк кода. Свойства Anchor и Dock, появившиеся в каркасе.NET, позволяют решать эту проблему без написания даже единой строки кода.

Свойство Anchor указывает поведение компонента при изменении размеров окна пользователем. Можно указать, чтобы компонент управления изменял свои размеры, сберегая пропорции своих краев, либо сохранял свои размеры, сберегая свою позицию относительно краев окна.

Свойство Dock указывает, что компонент должен пристыковываться к краю своего контейнера. Если пользователь изменяет размеры окна, компонент остается пристыкованным к краю окна. Если, например, указать, что компонент должен быть пристыкован к нижнему краю своего контейнера, то компонент изменяет свои размеры и/или перемещается, чтобы всегда занимать нижнюю часть окна независимо от изменения его размеров.

Проанализировав все указанные выше свойства можно выделить следующие типы свойств:

1. Числовой. Свойства такого типа принимают числовые значения (как правило целые). Например, размер объекта Width (ширина) и Height (высота). Свойства данного типа изменяются непосредственно в окне свойства или при изменении размеров с помощью мыши.

2. Строковый. В окне свойства необходимо набрать текст. Например, Text (заголовок формы) или Name (имя объекта.).

3. Логический. Свойства такого типа могут принимать только два значения «True» или «False». Например, свойство «Visible» (видимость). Изменение свойства логического типа возможно или выбором значения из предлагаемых вариантов или двойной щелчок мыши в поле свойства изменяет его значение на противоположное.

4. Фиксированный набор значений. Требуемое значение свойства выбирается из предлагаемого списка, либо двойной щелчок мыши в окне свойства перебирает все варианты. Например, свойство «WindowState» для формы может принимать одно из значений:

- Normal

- Minimized

- Maximized

5. Файловый содержит имя файла, из которого берется значение свойства. Например: свойство BackGroundImage для формы отображает значок, рисунок, который записан в выбранном файле.

6. Константы определения цвета. Например: Backcolor (цвет фона), Forecolor (текста) и т.п. Значения этих свойств устанавливается выбором на палитре цветов.

7. Константы привязки (свойство Dock)

8. Константы выравнивания (свойство Anchor)

Большая часть свойств задается в режиме конструирования, хотя большинство из них может изменяться и во время выполнения приложения. Для этого необходимо обратиться к элементу управления и указать название свойства через точку:

[имя_формы.]имя_ элемента_управления.свойство

Например, button1.BackColor = Color.Green – изменение цвета кнопки на зеленый.

События

Взаимодействие приложения с пользователем лучше всего описывается серией событий, которые генерирует элемент управления и на которые он реагирует.

С этой целью, событиям предоставляется реагирующий на их действия код. В технологии.NET на события нужно подписываться (subscribe). Под подпиской на событие подразумевается предоставление кода, который должен выполняться при генерации данного события, в виде обработчика событий (event handler).

На событие можно подписывать несколько обработчиков, которые все будут вызываться при генерации этого события. Обработчики событий представляют собой функции. Единственным ограничением для такой функции является то, что ее возвращаемый тип и параметры должны обязательно соответствовать тем, которых требует событие. Поэтому, строго не рекомендуется создание в редакторе программного кода заголовков обработчиков событий «вручную».

События, которые присущи всем элементам управления, описаны в табл. 1.2.

Таблица 1.2 События, присущие всем элементам управления

Событие Описание
Click Происходит при щелчке на элементе управления. В некоторых случаях это событие происходит также при нажатии пользователем клавиши <Enter>
Doubleclick Происходит при двойном щелчке на элементе управления. Иногда, обработка события Click для некоторых элементов управления, полностью исключает возможность вызова события Doubleclick
DragDrop Происходит по завершении операции перетаскивания и оставления — иначе говоря, при перетаскивании объекта поверх элемента управления и освобождении кнопки мыши пользователем
DragEnter Происходит, когда перетаскиваемый объект перемещается внутрь границ элемента управления
DragLeave Происходит, когда перетаскиваемый объект покидает границы элемента управления
DragOver Происходит, когда объект перетаскивается поверх элемента управления
KeyDown Происходит при нажатии клавиши во время нахождения элемента управления в фокусе. Это событие всегда происходит прежде событий KeyPress и KeyUp
Keypress Происходит при нажатии клавиши, в то время как элемент управления находится в фокусе. Это событие всегда происходит после события KeyDown и перед событием KeyUp. Различие между событиями KeyDown и KeyPress состоит в том, что KeyDown передает код нажатой клавиши, a KeyPress — соответствующее значение char клавиши.
KeyUp Происходит при освобождении клавиши, в то время как элемент управления находится в фокусе. Это событие всегда происходит после событий KeyDown и KeyPress
Enter Происходит, когда элемент управления получает фокус. Это событие не следует использовать для выполнения проверки допустимости элементов управления. В этом случае вместо него следует применять события Validating и Validated
Leave Происходит, когда элемент управления теряет фокус. Это событие не следует использовать для выполнения проверки допустимости элементов управления. В этом случае вместо него следует применять события validating и validated
MouseDown Происходит при помещении указателя мыши над элементом управления и нажатии кнопки мыши. Это событие не эквивалентно событию Click, поскольку MouseDown происходит сразу после нажатия кнопки мыши и перед ее освобождением
MouseMove Происходит непрерывно в процессе перемещения указателя мыши над элементом управления
Mouseup Происходит при помещении указателя мыши над элементом управления и освобождении кнопки мыши
Paint Происходит при прорисовке элемента управления
Resize Происходит при изменении размеров элемента управления
Validated Запускается, когда элемент управления, свойство CausesValidation которого установлено равным true, готов принять фокус. Это событие запускается по завершении события validating, и оно указывает на завершение проверки
Validating Запускается, когда элемент управления, свойство CausesValidation которого установлено равным true, готов принять фокус. Проверяемым компонентом является тот, который теряет фокус, а не тот, который его получает

В C# заголовки обработчиков событий выбранного компонента формируются автоматически в окне программного кода. Синтаксис обработчика события:

private void имя_компонента_событие(object sender, список_параметров)

{

Тело обработчика

}

где private – ключевое слово, которое определяет область действия обработчика событий (обычно в пределах формы);

событие – перечень основных событий приведен в таблице 1.2;

object sender – элемент управления, который генерирует событие;

список_параметров – список аргументов, которые передаются в процедуру и несут информацию о событии. Например, private void Form1_KeyPress(object sender, KeyPressEventArgs e). Здесь для события KeyPress компоенета Form1передается информация о нажатой клавише KeyPressEventArgs.

Методы

Методы представляют собой подпрограммы, которые манипулируют данными, определенными в классе, а во многих случаях они предоставляют доступ к этим данным. Методы могут вызываться так же, как и любые другие функции, и тем же самым образом использовать возвращаемые значения и параметры.

Методы применяются для обеспечения доступа к функциональным возможностям объекта. Они нередко подразумевают использование состояния объекта в своих операциях

Синтаксис методов в принципе похож на синтаксис свойств, но только в нем еще отображается возвращаемый тип и параметры методов.

Т.о., метод представляет собой законченный фрагмент кода, к которому можно обратитьсяно имени. Он описывается один раз, а вызываться может столько раз, сколько необходимо. Один и тот же метод может обрабатывать различные данные, переданные ему в качестве аргументов.

Синтаксис метода:

[атрибуты] [спецификаторы] тип имя_метода ([параметры])

тело метода

Здесь первая строка представляет собой заголовок метода. Тело метода, задающее действия, выполняемые методом, чаще всего представляет собой блок — последовательность операторов в фигурных скобках.

Синтаксис вызова метода:

имя_компонента.имя_метода ([параметры])

Выбор и использование элементов управления

Как уже было сказано выше приложения строятся на основе форм, а на формах размещаются элементы управления, которые расширяют функциональные возможности приложения и обеспечивают его всем необходимым для взаимодействия с пользователем.

Библиотека.NET Framework имеет два типа элементов управления: визуальные и певи-зуальпые. Визуальные элементы управления являются элементами пользовательского интерфейса. Это, например, элементов управления: кнопка (Button), выпадающий список (comboBox) или метка (Label). Невизуальные элементы управления не имеют пользовательского интерфейса и не могут располагаться на форме. Visual Studio располагает их внизу окна конструктора формы. Такими компонентами являются, например, Таймер (Timer) и всплывающая подсказка (ToolTip).

После размещения элемента его имя появится в списке объектов окна свойств.

Работа с формами

Формой называется главный элемент управления приложения, на котором размещаются все другие элементы управления.

Для всех форм в ОС Wіndows можно выделить следующие общие элементы:

- граница придает форме необходимую степень гибкости. Она может быть фиксированной, масштабируемой или отсутствовать.

- строка заголовка, на которой располагается специальный текст.

- Оконное меню содержит команды для восстановления, перемещения, изменения размеров, свертывания, развертывания и закрытия формы.

Форма обладает рассмотренными выше свойствами: Name, Text, BackColor, Location, Size, а так же свойствами Font и ForeColor, которые в данном случае влияют на вид элементов управления, находящихся на поверхности формы. Т.е. изменение значения свойства Font (ForeColor) приводит к автоматическому изменению значения свойства Font всех элементов управления формы (при условии, что значение свойства компонента не было задано явно).

Специфические свойства формы приведены в табл. 1.3.

Таблица 1.3 – Специфические свойства формы

Свойство Описание
AcceptButton Определяет кнопку по умолчанию (Default) для формы. Данная кнопка реагирует на нажатие клавиши <Enter>. На форме может быть только одна такая кнопка. В свойстве выбирается одна из установленных на форме кнопок.
AutoScroll Получает или устанавливает значение, указывающее, допускает ли форма автоматическую прокрутку.
StartPosition Положение формы в момент первого появления на экране. Форма может находиться в центре экрана (CenterScreen), в центре родительского окна (CenterParent). Если значение свойства равно Manual, то положение формы определяется значением свойства Location.
FormBorderStyle Тип формы (границы). Форма может представлять собой обычное окно (sizable), окно фиксированного размера (FixedSingle, Fixed3D), диалог (FixedDialog) или окно без кнопок Свернуть И Развернуть (SizeableToolWindow, FixedToolWindow). Если свойству присвоить значение None, у окна не будет заголовка и границы
ControlBox Управляет отображением системного меню и кнопок управления окном. Если значение свойства равно False, то в заголовке окна кнопка системного меню, а также кнопки Свернуть, Развернуть, Закрыть не отображаются
MaximazeBox Кнопка Развернуть. Если значение свойства равно False, то находящаяся в заголовке окна кнопка Развернуть недоступна
MinirnazeBox Кнопка Свернуть. Если значение свойства равно False, то находящаяся в заголовке окна кнопка Свернуть недоступна
Icon Значок в заголовке окна
Opacity Степень прозрачности формы. Форма может быть непрозрачной (100%) или прозрачной. Если значение свойства меньше 100%, то сквозь форму видна поверхность, на которой она отображается
ShowIcon Получает или устанавливает значение, указывающее, отображается ли значок в полосе заголовка формы.
ShowInTaskBar Позволяет убрать форму с панели задач
WindowState Определяет состояние формы при запуске приложения: - Normal (в нормальном состоянии); - Minimized (в свернутом состоянии); - Maximized (разворачивается в о весь экран).

При работе с формой события происходят в следующем порядке:

- Load

- Activated

- Closing

- Closed

- Deactivate

Первые два события касаются инициализации. Событие Load происходит после создания формы, но перед появлением ее на экране. Разница между событиями связана с существованием формы. Когда возникает событие Load, форма уже существует, хотя пока еще и невидима.

Событие Activated происходит, когда форма становится видимой и текущей.

Бывают ситуации, когда этот порядок может быть слегка изменен. Если во время конструирования свойство Visible установить в true или вызвать метод Show (устанавливающий Visible в true), то событие Load возбуждается немедленно. А поскольку это также делает форму видимой и текущей, также сразу выполняется событие Activated. Если имеется код после установки Visible в true, он выполняется.

Событие Closing предоставляет возможность прервать процесс закрытия формы и устанавливает значение параметра CancelEventArgs. Этот аргумент имеет свойство Cancel, которое, будучи установленным в true, прерывает событие и оставляет форму открытой. Событие Closing случается при попытке закрыть форму, в то время как событие Closed — после ее закрытия. Оба они дают возможность выполнить необходимую очистку. Отметим, что событие Deactivate происходит уже после закрытия формы.

Чтобы пользователи могли взаимодействовать с приложением, они должны видеть форму. Это обеспечивается методами Show и ShowDialog. Метод Show просто делает форму видимой пользователю. Когда вызывается метод Show, то код, следующий за этим вызовом, выполняется немедленно. Когда же вызывается ShowDialog, то вызывающий код блокируется до тех пор, пока форма, чей метод ShowDialog был вызван, не будет закрыта. Но при этом не только вызывающий код блокируется, но еще форма необязательно возвращает значение DialogResult. Перечисление DialogResult представляет собой список идентификаторов, описывающих причину закрытия формы. Они включают OK, Cancel, Yes, No и ряд других. Для того чтобы форма возвратила DialogResult, должно быть установлено ее свойство DialogResult, либо же свойство DialogResult должно быть установлено для одной из кнопок формы.

При программном изменении значений свойств, для обращения к свойствам и методам формы в пределах ее модуля используется ключевое слово this.

 

Пример 1.1

private void Form1_Load(object sender, EventArgs e)

{

this.Text = "Пример изменения внешнего вида формы при ее загрузке";

this.BackColor = Color.Green;

}

 

private void Form1_Click(object sender, EventArgs e)

{

this.BackColor = Color.Red;

}

 

private void Form1_DoubleClick(object sender, EventArgs e)

{

this.BackColor = Color.Yellow;

}

 

private void Form1_Resize(object sender, EventArgs e)

{

this.Text = "Изменение размеров формы. Ширина: " + this.Width+", высота: "+this.Height;

}

 

private void Form1_MouseDown(object sender, MouseEventArgs e)

{

if (e.Button == MouseButtons.Right) { this.BackColor = Color.Black;; }

}

 

private void Form1_MouseUp(object sender, MouseEventArgs e)

{

if (e.Button == MouseButtons.Right) { this.BackColor = Color.White; }

}

 

private void Form1_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)Keys.Return) { this.WindowState = FormWindowState.Maximized; }

else if (e.KeyChar == (char)Keys.Escape) { this.WindowState = FormWindowState.Normal; }

}

 

Рассмотрим наиболее часто применяемые при разработке приложений под Windows элементы управления, которые располагаются в группе Common Controls.

Label

Элемент управления Label предназначен для отображения текстовой информации. Задать текст, отображаемый в поле элемента управления, можно как во время разработки формы, так и во время работы программы, присвоив нужное значение свойству Text. Свойства элементы управления приведены в табл. 1.6.


Таблица 1.4 – Свойства компонента Label

Свойство Описание
AutoSize Признак автоматического изменения размера компонента. Если значение свойства равно True, то при изменении значения свойства Text (или Font) автоматически изменяется размер компонента
MaximumSize Если значение свойства AutoSize равно True, то задает максимально допустимый (макимально возможный) размер компонента (области отобра­жения текста). Свойство MaximumSize.width задает максимально возможную ширину области, свойство MaximumSize. Height — высоту
TextAlign Способ выравнивания (расположения) текста в поле компонента. Всего существует девять способов расположения текста. На практике наиболее часто используют выравнивание по левой верхней границе (TopLeft), посередине (ТорCenter) и по центру (MiddleCenter)
BorderStyle Вид рамки (границы) компонента. По умолчанию граница вокруг поля Label отсутствует (значение свойства равно None). Граница компонента может быть обычной (Fixed3D) или тонкой (FixedSingle)

TextBox

Элемент управления TextBox предназначен для ввода данных (строки символов) с клавиатуры. Свойства элемента управления приведены в табл. 1.6.

Таблица 1.5 – Свойства элемента управления TextBox

Свойство Описание
AcceptsTab Определяет поведение клавиши TAB при многострочном режиме элемента управления (Multiline=true). Если значение свойста установлено в true, то при нажатии клавиши TAB в окно компонента вставляется символ табуляции (длинный пробел), в противном случае осуществляется переход на следующий компонент.
BorderStyle Вид рамки (границы) компонента. Граница компонента может быть обычной (Fixed3D), тонкой (FixedSingie) или отсутствовать (None)
CharterCasing Определяет регистр набора текста в компоненте: - Normal (нормальный); - Upper (все прописные); - Lower (все строчные)  
TextAlign Способ выравнивания текста в поле компонента. Текст в поле компонента может быть прижат к левой границе компонента (Left), правой (Right) или находиться по центру (Center)
MaxLength Максимальное количество символов, которое можно ввести в поле компонента
PasswordChar Символ, который используется для отображения вводимых пользователем символов (введенная пользователем строка находится в свойстве Text)
Multiline Разрешает (True) или запрещает (False) ввод нескольких строк текста
Readonly Разрешает (True) или запрещает (False) редактирование отображаемого текста
Dock Способ привязки положения и размера компонента к размеру формы. По умолчанию привязка отсутствует (None). Если значение свойства равно Тор или Bottom. Ширина компонента устанавливается равной ширине формы и компонент прижимается соответственно к верхней или нижней границе формы. Если значение свойства Dock равно Fill, а свойства Multiline — True, то размер компонента устанавливается максимально возможным
HideSelection Указывает остается ли выделенным текст (значение false) при потере фокуса компонентом.
Lines Массив строк, элементы которого содержат текст, находящийся в поле редактирования, если компонент находится в режиме MultiLine. Доступ к строке осуществляется по номеру. Строки нумеруются с нуля
ScrolLBars Задает отображаемые полосы прокрутки: Hori zontal — горизонтальная; Vertical — вертикальная; Both — горизонтальная и вертикальная; None — не отображать
WordWrap Указывает, автоматически переносит ли по словам многострочный элемент управления текстового блока слова к началу следующей строки, при необходимости.

Пример 1.2

Разместим на форме два элемента управления TextBox и метку (рис. 5.1). Свойства компонентов заданы по умолчанию. Реализуем выполнение следующих действий:

1. При попадании в перове текстовое поле (TextBox1) его цвет становиться черным (используется ключевое слово Color), подпись в метке – «Текстовое окно в фокусе», размеры поля устанавливаются 100х150.

2. В случае, когда пользователь покидает первое поле (переход на элемент TextBox2), его цвет становиться серым, подпись в метке – «Текстовое окно не в фокусе», размеры поля уменьшаются в два раза.

Первое действие осуществляется при событии Enter, второе – Leave. Для того, чтобы можно было изменять высоту текстового элемента, необходимо установить значение его свойства MultyLine в True.

 
а) этап конструирования   б) результат работи програмы в) активизация текстового поля

Рис. 1.2 Пример использования элементов TextBox и Label

private void textBox1_Enter(object sender, EventArgs e)

{

textBox1.Height=100;

textBox1.Width=150;

textBox1.BackColor=Color.Black;

label1.Text = "Текстовое окно в фокусе";

}

 

private void textBox1_Leave(object sender, EventArgs e)

{

textBox1.Height=50;

textBox1.Width=75;

textBox1.BackColor=Color.Gray;

label1.Text = "Текстовое окно не в фокусе";

}

После запуска программы если щелкнуть мышью по первому полю (активизировать данный компонент), то первоначальная форма на рис. 1.2а примет другой вид (рис. 1.2б). Щелчок мышью по второму окну (первое окно становится не активным) изменяет вид формы (рис. 1.2в).

Button

Компонент Button представляет собой командную кнопку и обладает рассмотренными свойствами Name, Text, Location, Size, Font, Enabled, Visible, Cursor. Специфические свойства компонента приведены в табл. 1.4.


Таблица 1.6 – Свойства компонента Button

Свойство Описание
TextAlign Положение текста на кнопке. Текст может располагаться в центре кнопки (MiddleCenter), быть прижат к левой (MiddleLef t) или правой (MiddleRight) границе. Можно задать и другие способы размещения надписи (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight)
FlatStyle Стиль, Кнопка может быть стандартной (standard), плоской (Flat) или "всплывающей" (Popup)
Image Картинка на поверхности кнопки. Рекомендуется использовать gif-файл, в котором определен прозрачный цвет
ImageAlign Положение картинки на кнопке. Картинка может располагаться В центе (MiddleCenter), быть прижата к левой (MiddieLeft) или правой (MiddieRight) границе. Можно задать и другие способы размещения картинки на кнопке (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight)
ImageList Набор изображений, из которых может быть выбрано то, которое будет отображаться на поверхности кнопки. Представляет собой объект типа ImageList. Чтобы задать значение свойства, в форму приложения нужно добавить компонент ImageList
ImageIndex Номер (индекс) изображения из набора ImageList, которое отображается на кнопке
ToolTip Подсказка, появляющаяся рядом с указателем мыши при его позиционировании на кнопке. Чтобы свойство стало доступно, в форму приложения нужно добавить компонент ToolTip

С помощью метода PerformClick можно эмулировать событие Click кнопки без необходимости действительного выполнения щелчка пользователем. Метод NotifyDefault принимает в параметре значение булевского типа и сообщает кнопке, чтобы она отобразила себя как кнопку по умолчанию. Обычно кнопка по умолчанию на форме имеет слегка утолщенную рамку.

Пример 1.1

Разместим на форме две кнопки и метку. Имена элементов оставим заданными по умолчанию. Изменим заголовок для фомы на «Примеры с кнопкой». Определим для формы свойства AcceptButton и CancelButton. Для этого в окне свойств для первого свойства выберем имя первой кнопки button1, для второго – button2. При нажатии на кнопку button1 изменим надпись в метке на «Нажата кнопка 1», для button2 – «Нажата кнопка 2». При нажатии на клавишу <Enter> выполняется событие Click для button1, <Esc> – button2.

 

private void button2_Click(object sender, EventArgs e)

{

label1.Text = "Нажата кнопка 2";

}

 

private void button1_Click(object sender, EventArgs e)

{

label1.Text="Нажата кнопка 1";

}

 

Вид формы в режиме конструктора представлен на рис.

Рис. 1.3 – Вид формы в режиме конструктора

GroupBox

Следующие два компонента играют вспомогательную роль и относятся к группе Containers.

Компонент GroupBox представляет собой контейнер для других компонентов. Обычно он используется для объединения в группы компонентов RadioButton по функциональному признаку. Компонент GroupBox не обладает специфическими свойствами.

Panel

Компонент Panel представляет собой контейнер для других компонентов и позволяет легко управлять компонентами, которые находятся на панели. Например, для того чтобы сделать недоступными компоненты, находящиеся на панели, достаточно присвоить значение False свойству Enabled панели. Свойства компонента Panel приведены в табл. 1.12.

Таблица 1.7 – Свойства компонента Panel

Свойство Описание
AutoScroll Задает предоставлять ли пользователю возможность прокручивания в случае, если компоненты, размещаются за пределами видимых границ панели.
AutoSize Определяет подстраивается ли размер компонента, так чтобы все содержащиеся в нем компоненты были видны (true).
Dock Определяет границу формы, к которой привязана (прикреплена) панель. Панель может быть при­креплена клевой (Left), правой (Right), верхней (Тор) или нижней (Bottom) границе формы
BorderStyle Вид границы панели; FixedSingle — рамка; Fixed3D — объемная граница; None — граница не отображается

CheckBox

Компонент CheckBox представляет собой переключатель, который может находиться в одном из двух состояний: выбранном или невыбранном (часто вместо "выбранный" говорят "установленный", а вместо "невыбранный" — "сброшенный"). Компонент обладает рассмотренными выше свойствами Name, Text, Location, Size, Font, Enabled, Visible, Cursor. Свойства компонента CheckBox приведены в табл. 1.5.

Таблица 1.8 – Свойства компонента CheckBox

Свойство Описание
Checked Состояние переключателя. Если переключатель выбран (в поле компонента отображается галочка), то значение свойства равно True. Если переключатель сброшен (галочка не отображается), то значение свойства равно False
TextAllign Положение текста в поле отображения текста. Текст может располагаться в центре поля (MiddleCenter), быть прижат клевой (MiddieLef t) или правой (MiddleRight) границе. Можно задать и другие способы размещения текста надписи (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight)
CheckAllign Положение кнопки в поле компонента. Кнопка может быть прижата к левой верхней границе (TopLeft), прижата клевой границе и находиться на равном расстоянии от верхней и нижней границ поля компонента (MiddieLeft). Есть и другие варианты размещения кнопки в поле компонента
AutoCheck Определяет, должно ли автоматически изменяться состояние переключателя в результате щелчка на его изображении. По умолчанию значение равно True
FlatStyle Стиль (вид) переключателя. Переключатель может быть обычным (Standard), плоским (Flat) или "всплывающим" (Popup). Стиль определяет поведение переключателя при позиционировании указателя мыши на его изображении
Appearance Определяет вид переключателя. Переключатель может выглядеть обычным образом (Normal) или как кнопка(Button)
Image Картинка, которая отображается в поле компонента
ImageAign Положение картинки в поле компонента. Картинка может располагаться в центре (MiddleCenter), быть прижата к левой (MiddleLeft) или правой (MiddieRight) границе. Можно задать и другие способы размещения картинки на кнопке (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight)
ImageList Набор картинок, используемых для обозначения различных состояний кнопки. Представляет собой объект типа ImageList. Чтобы задать значение свойства, в форму приложения следует добавить компонент ImageList
Image Index Номер (индекс) картинки из набора ImageList, которая отображается в поле компонента

Если свойство ThreeState установлено в true, то свойство CheckState компонента CheckBox может принимать одно из следующих трех перечислимых значений:

- Checked Элемент CheckBox отмечен.

- Unchecked Элемент CheckBox не отмечен.

- Indeterminate В этом состоянии элемент CheckBox не доступен.

Для получения текущего состояния в виде булевского значения можно обратиться к свойству Checked.

События CheckedChanged и CheckStateChanged возникают, когда изменяется свойство CheckState или Checked. Перехват этих событий может пригодиться для установки других значений на основе нового состояния CheckBox.

RadioButton

Компонент RadioButton представляет собой кнопку (переключатель), состояние которой зависит от состояния других кнопок (компонентов RadioButton). Обычно компоненты RadioButton объединяют в группу (достигается это путем размещения нескольких компонентов в поле компонента GroupBox). В каждый момент времени только одна из кнопок группы может находиться в выбранном состоянии (возможна ситуация, когда ни одна из кнопок не выбрана). Состояния компонентов, принадлежащих разным группам, независимы. Свойства компонента приведены в табл. 1.6.

Таблица 1.9 – Свойства компонента RadioButton

Свойство Описание
Checked Состояние, внешний вид кнопки. Если кнопка вы­брана, то значение свойства Checked равно True; если кнопка не выбрана, то значение свойства Checked равно False
TextAllign Положение текста в поле отображения. Текст может располагаться в центре поля (MiddleCenter), прижат К левой (MiddleLeft) или правой (MiddleRight) границе. Можно задать и другие способы размещения текста надписи (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight)
CheckAllign Положение кнопки в поле компонента. Кнопка может быть прижата к левой верхней границе (TopLeft), прижата клевой границе и находиться на равном расстоянии от верхней и нижней границ поля компонента (MiddleLeft). Есть и другие варианты размещения кнопки в поле компонента
AutoCheck Свойство определяет, должно ли автоматически изменяться состояние переключателя в результате щелчка на его изображении. По умолчанию значение р


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-03-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: