Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Благодарности 11 страница






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

Проверка данных формы

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

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

Подключение компонента ErrorProvider

Давайте модифицируем форму регистрации, рассмотренную нами ранее в разделе «Программирование формы регистрации» этой главы, добавив проверку данных, введенных в полях Ф.И.О. и Адрес E-Mail (рис. 5-9).

Прежде всего, откройте окно редактирования свойств редактора textBoxName, предназначенного для ввода имени, фамилии и отчества пользователя (рис. 5-13).

Рис. 5-13. Свойство CausesValidation

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

Далее перетащите на поверхность формы из инструментальной панели Toolbox системы Microsoft Visual Studio.NET значок программного компонента ErrorProvider. В результате станет возможной обработка ошибок, допущенных при заполнении полей этой формы.

Создание обработчика события Validating

На следующем этапе Вам нужно создать обработчик события Validating. Это событие возникнет в тот момент, когда элемент управления потеряет фокус ввода. Для того чтобы создать обработчик этого события, откройте вкладку событий в окне Properties и введите в поле Validating имя обработчика события textBoxName_Validating (рис. 5-14).

Рис. 5-14. Создание обработчика события Validating

В результате будет создано пустое тело метода textBoxName_Validating, которое нужно будет дополнить кодом, выполняющим все необходимые проверки.

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

private void textBoxName_Validating(object sender,
System.ComponentModel.CancelEventArgs e)
{
if(textBoxName.Text.Length == 0)
{
errorProvider1.SetError(textBoxName, " Не указано имя");
}
else
errorProvider1.SetError(textBoxName, " ");
}

Если эта длина равна нулю, то обработчик события вызывает метод SetError. В качестве первого параметра этому методу передается ссылка на проверяемый элемент управления, а в качестве второго — текст сообщения об ошибке.

Для проверки содержимого поля Адрес E-Mail мы предусмотрели чуть более сложный обработчик:

private void textBoxEmail_Validating(object sender,
System.ComponentModel.CancelEventArgs e)
{
string email = textBoxEmail.Text;

if(email.IndexOf('@') == -1 || email.IndexOf('.') == -1)
{
errorProvider1.SetError(textBoxEmail,
" Неправильный адрес E-Mail");
}
else
errorProvider1.SetError(textBoxEmail, " ");
}

Здесь мы проверяем, что введенный адрес электронной почты содержит символ @ и точку. Если этих символов нет, то адрес E-Mail введен с ошибкой.

На рис. 5-15 мы показали проверку ошибок в действии.

Рис. 5-15. Сообщение об ошибке в адресе E-Mail

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

Настройка свойств компонента ErrorProvider

Выделив в окне дизайнера форм значок компонента ErrorProvider, можно настроить его свойства в окне Properties (рис. 5-16).

Рис. 5-16. Свойства компонента ErrorProvider

Рассмотрим самые необходимые свойства.

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

Свойство BlinkRate определяет частоту мигания значка в миллисекундах.

Свойство BlinkStyle задает стиль значка и может иметь следующие значения:

 BlinkIfDifferentError (используется по умолчанию);

 AlwaysBlink;

 NeverBlink

Если задать свойству BlinkStyle значение BlinkIfDifferentError, то значок будет мигать, если значок отображался ранее, но текст сообщения об ошибке стал другим.

Использование значения AlwaysBlink приводит к постоянному миганию значка, а значения NeverBlink — к отмене мигания.

Визуальное проектирование приложений C#


А.В. Фролов, Г.В. Фролов

Глава 6. Использование элементов управления.. 2

Кнопки.. 2

Надпись на кнопке. 2

Текст. 2

Шрифт. 3

Цвет. 3

Выравнивание текста. 3

Стиль кнопки. 3

Блокирование кнопки. 3

Изображение на поверхности кнопки. 4

Выбор файла изображения. 4

Выравнивание изображения. 4

Фоновое изображение для кнопки. 4

События. 4

Флажки с зависимой фиксацией.. 8

Приложение RadioButtonApp. 8

Панели GroupBox и Panel 8

Добавление объектов в панели. 8

Обработка событий. 10

Использование изображений. 11

Флажки с независимой фиксацией.. 12

Приложение CheckBoxApp. 12

Настройка свойств флажков CheckBox. 13

Обработка событий. 13

Переключение флажка в неопределенное состояние. 14

Извлечение состояния флажков. 14

Списки.. 15

Список ListBox. 17

Создание списка. 17

Настройка свойств. 17

Получение списка выделенных строк. 18

Список CheckedListBox. 19

Список ComboBox. 20

Список DomainUpDown. 21

Элемент управления NumericUpDown. 21

Элемент управления TrackBar.. 22

Создание элемента управления TrackBar. 22

Свойства элемента управления TrackBar. 23

Обработка события Scroll 24

Элемент управления ProgressBar.. 24

Полосы прокрутки HScrollBar и VScrollBar.. 25

Календарь. 26

Создание календаря. 26

Настройка свойств. 27

Элемент управления DateTimePicker.. 29

Создание элемента управления DateTimePicker. 29

Настройка свойств. 30

Таймер. 31

Создание таймера. 32

Свойства таймера. 33

Методы таймера. 33

Обработка события Tick. 33

Элемент управления TabControl. 33

Создание элемента управления TabControl 34

Добавление страниц. 35

Редактирование свойств блокнота и страниц. 35

Элемент управления ToolTip. 37

Добавление всплывающих подсказок. 37

Настройка параметров всплывающих подсказок. 38

Программный код. 39

 

Глава 6. Использование элементов управления

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

В этой главе мы расскажем более подробно об использовании некоторых наиболее часто встречающихся элементов управления, но из-за ограниченного объема книги приведем описания не всех свойств и событий. Что же касается наиболее полной информации о свойствах и событиях элементов управления, то Вы сможете ее найти в справочно-информационной системе MSDN, входящей в комплект системы разработки Microsoft Visual Studio.NET. Вы также сможете найти эту справочно-информационную систему в Интернете по адресу https://msdn.microsoft.com.

Кнопки

Наряду с надписями и полями редактирования текстовой информации кнопки встречаются чаще всего в пользовательском интерфейсе приложений.

Кнопки создаются на базе класса System.Windows.Forms.Button. В этом классе предусмотрено значительное количество свойств, с помощью которого можно создавать кнопки самого разного вида. Специально для демонстрации возможностей этого класса мы подготовили приложение ButtonsApp, главное и единственное окно которого показано на рис. 6-1.

Рис. 6-1. Кнопки различного вида

Программист может задавать внешний вид и поведение кнопки, помещать на ее поверхность графические изображения, а также задавать для кнопки фоновое графическое изображение. Шрифт текста, а также расположение текста и графического изображения можно изменять. Расскажем об этом подробнее.

Надпись на кнопке

Как мы уже говорили, текст надписи, расположенной на кнопке, задается с помощью свойства Text. Это свойство, как и другие свойства элементов управления, можно задавать во время проектирования приложения (design time), а также программно во время работы приложения (run time).

Текст

Вот, например, как программа может изменить текст надписи для кнопки buttonRed:

buttonRed.Text = " Красный";

Стандартные кнопки ОС Microsoft Windows не допускают изменение шрифта или цвета надписей. Что же касается кнопок System.Windows.Forms.Button, то здесь перед программистом открываются широкие возможности.

Шрифт

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

buttonYellow.Font = new System.Drawing.Font(" Comic Sans MS", 11.25F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204)));

Здесь мы создаем новый шрифт как объект класса System.Drawing.Font, передавая конструктору через параметры такие атрибуты шрифта, как название, размер, стиль, единицы измерения размера шрифта и кодировку. Подробнее о шрифтах читайте в 10 главе нашей книги.

Цвет

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

Программно цвет задается следующим образом:

buttonYellow.ForeColor = System.Drawing.Color.DarkGreen;

Здесь мы задали темно-зеленый цвет надписи, воспользовавшись для этого статической константой System.Drawing.Color.DarkGreen.

Выравнивание текста

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

Программно выравнивание текста задается следующим образом:

buttonGreen.TextAlign = System.Drawing.ContentAlignment.BottomCenter;

Стиль кнопки

Учитывая стремление разработчиков приложений придавать своим программам интерфейс, подобный интерфейсу Web-приложений, создатели класса System.Windows.Forms.Button позаботились о возможности изменения стиля кнопки.

Стиль кнопки задается свойством FlatStyle. Это свойство может иметь следующие значения:

 Flat;

 Popup;

 Standard;

 System

Стиль Standard предназначен для создания обычных «серых» кнопок, знакомых Вам по старым приложениям Microsoft Windows.

Если выбрать стиль System, то внешний вид кнопки будет определяться настройками ОС.

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

И, наконец, кнопка Flat всегда остается плоской. Но если пользователь располагает над такой кнопкой курсор мыши, кнопка становится темнее.

Стиль кнопки можно определить средствами Microsoft Visual Studio.NET, а можно задать программно, например:

buttonYellow.FlatStyle = System.Windows.Forms.FlatStyle.Popup;

Заметим, что кнопки, располагаемые на страницах Web-сайтов, обычно ведут себя именно так, как только что описанные кнопки Popup и Flat. Поэтому если внешний вид Вашего автономного приложения должен быть похож на внешний вид страниц Web, применяйте именно эти стили.

Блокирование кнопки

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

Для того чтобы заблокировать кнопку, установите значение свойства Enabled равным true. Заблокированная кнопка отображается в форме, однако не реагирует на мышь и клавиатуру, а также не создает событий.

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

Изображение на поверхности кнопки

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

Выбор файла изображения

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

Программно изображение на поверхности кнопки задается так:

buttonGreen.Image =
((System.Drawing.Bitmap)
(resources.GetObject(" buttonGreen.Image")));

Здесь изображение извлекается из ресурсов приложения с помощью метода resources.GetObject, а затем, после приведения типа к System.Drawing.Bitmap, записывается в свойство Image.

Выравнивание изображения

Редактируя свойство ImageAlign, Вы можете изменить выравнивание изображения, добавленного в кнопку (по умолчанию изображение центрируется в окне кнопки). Это можно делать при помощи средств Microsoft Visual Studio.NET, или программно:

buttonGreen.ImageAlign = System.Drawing.ContentAlignment.TopCenter;

Как правило, если на кнопе имеется и текст, и изображение, нужно задать соответствующее выравнивание и для текста, и для изображения. Например, можно выровнять изображение влево по центру, а текст — вправо по центру, как это сделано в кнопке Голубой на рис. 6-1. А можно выровнять изображение верх по центру, а текст — вниз по центру (кнопка Зеленый на рис. 6-1)

Фоновое изображение для кнопки

Чтобы еще больше улучшить внешний вид кнопки, Вы можете задать для нее фоновое изображение. Оно будет использовано таким же образом, как фоновое изображение формы или Web-страницы.

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

Чтобы задать фоновое изображение для кнопки, отредактируйте свойство BackgroundImage. Это можно сделать во время разработки приложения или из программы:

buttonWhite.BackgroundImage =
((System.Drawing.Bitmap)
(resources.GetObject(" buttonWhite.BackgroundImage")));

События

До сих пор мы обрабатывали только одно событие Click, создаваемое при щелчке кнопки мышью. В приложении ButtonsApp мы подготовили обработчики этого события, предназначенные для изменения цвета панели panel1 класса Panel, расположенной в правой части главного окна этого приложения. Создавая приложение, перетащите эту панель в форму из инструментальной панели Toolbox.

Каждый такой обработчик события устанавливает свойство panel1.BackColor, записывая в него тот или иной цвет:

private void buttonRed_Click(object sender, System.EventArgs e)
{
panel1.BackColor = System.Drawing.Color.Red;
}

private void buttonYellow_Click(object sender, System.EventArgs e)
{
panel1.BackColor = System.Drawing.Color.LightYellow;
}

private void buttonBlue_Click(object sender, System.EventArgs e)
{
panel1.BackColor = System.Drawing.Color.LightSkyBlue;
}

private void buttonGreen_Click(object sender, System.EventArgs e)
{
panel1.BackColor = System.Drawing.Color.MediumSpringGreen;
}

private void buttonWhite_Click(object sender, System.EventArgs e)
{
panel1.BackColor = System.Drawing.Color.White;
}

Цвет задается как статическая константа класса System.Drawing.Color.

Если в окне проектирования формы щелкнуть кнопку дважды, для нее по умолчанию будет создан обработчик события Click. Однако кнопка, как и остальные элементы управления, создает множество других событий. Чтобы увидеть список событий, создаваемых кнопкой, выделите ее левой клавишей мыши в окне проектирования формы, а затем откройте вкладку событий, расположенную в окне Properties (рис. 6-2).

Рис. 6-2. Вкладка событий для кнопки

Как видите, для обработки события Click здесь назначен обработчик buttonWhite_Click.

Все события, перечисленные на вкладке событий, разделены на группы. Группа Action (действие) включает в себя только событие Click. Что же касается группы Mouse (события, связанные с мышью), то в ней имеется целых шесть событий. Они создаются, когда пользователь нажимает кнопку мыши в окне кнопки (событие MouseDown), располагает курсор мыши над поверхностью окна кнопки (MouseEnter) или убирает курсор мыши из этого окна (MouseLeave) и т.д. Выделяя по очереди левой клавишей мыши названия событий, Вы можете прочитать в нижней части вкладки краткое описание условий, при которых это событие возникает.

На вкладке событий Вы можете назначить обработчики для любых событий.

Выделите в окне дизайнера форм приложения ButtonsApp любую кнопку, а затем создайте для событий MouseEnter и MouseLeave обработчики buttonsEnter и buttonsLeave. Для этого введите имена обработчиков в соответствующих полях вкладки событий (рис. 6-3).

Рис. 6-3. Добавление обработчиков событий

В результате мастер форм создаст для нас пустые тела обработчиков событий, получающих управление при перемещении курсора мыши над кнопкой:

private void buttonsEnter(object sender, System.EventArgs e)
{

}

private void buttonsLeave(object sender, System.EventArgs e)
{

}

Обработчик buttonsEnter получит управление, когда курсор мыши входит в область окна кнопки, а обработчик buttonsLeave — когда курсор мыши выходит из этой области.

Выделив по очереди остальные кнопки, расположенные в окне нашей формы, назначьте для них те же самые обработчики событий buttonsEnter и buttonsLeave, что и для первой кнопки. Для этого достаточно выбрать имя существующего обработчика событий из списка (рис. 6-4).

Рис. 6-4. Подключение существующего обработчика событий

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

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

Модифицируйте исходные тексты приложения ButtonsApp.

Прежде всего, добавьте в класс Form1 поле oldColor, предназначенное для хранения исходного цвета фона кнопки:

Color oldColor;

Далее добавьте исходный текст обработчика событий buttonsEnter, подключенного ко всем кнопкам нашего приложения:

private void buttonsEnter(object sender, System.EventArgs e)
{
Button btn = (Button)sender;
oldColor = btn.BackColor;
btn.BackColor = Color.Red;

switch(btn.Text)
{
case " Красный":
{
panel1.BackColor = System.Drawing.Color.Red;
break;
}
case " Желтый":
{
panel1.BackColor = System.Drawing.Color.LightYellow;
break;
}
case " Голубой":
{
panel1.BackColor = System.Drawing.Color.LightSkyBlue;
break;
}
case " Зеленый":
{
panel1.BackColor = System.Drawing.Color.MediumSpringGreen;
break;
}
case " Белый":
{
panel1.BackColor = System.Drawing.Color.White;
break;
}
}
}

Получив управление, наш обработчик событий получает идентификатор кнопки, вызвавшей событие, и сохраняет его в переменной btn. Затем обработчик сохраняет в поле oldColor текущий цвет фона кнопки, получая его из свойства btn.BackColor, а затем раскрашивает фон кнопки в красный цвет:

Button btn = (Button)sender;
oldColor = btn.BackColor;
btn.BackColor = Color.Red;

Далее обработчик события получает текст надписи на кнопке btn.Text и определяет, какая кнопка вызвала появление события:

switch(btn.Text)
{
case " Красный":
{
panel1.BackColor = System.Drawing.Color.Red;
break;
}

}

Далее обработчик событий изменяет соответствующим образом цвет панели panel1.

Когда мышь покидает окно наших кнопок, управление получает обработчик событий buttonsLeave:

private void buttonsLeave(object sender, System.EventArgs e)
{
Button btn = (Button)sender;
btn.BackColor = oldColor;
panel1.BackColor = System.Drawing.Color.LightGray;
}

Его задача — восстановление исходного цвета фона кнопки, окно которой покинул курсор мыши, а также раскрашивание панели panel1 в светло-серый цвет.

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

Обработка событий MouseDown и MouseUp позволяет задать, например, произвольный вид кнопки в нажатом и отжатом состоянии.

Флажки с зависимой фиксацией

В разделе «Диалоговое окно регистрации программы» 5 главы мы кратко рассказывали Вам об использовании флажков с зависимой и независимой фиксацией в форме регистрации программы SimpleNotepad. В этом разделе мы рассмотрим свойства и события флажков подробнее.

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

Флажки с зависимой фиксацией создаются на базе класса System.Windows.Forms.RadioButton.

Приложение RadioButtonApp

Мы будем рассказывать о флажках с зависимой фиксацией на примере приложения RadioButtonApp, главное окно которого показано на рис. 6-5.

Рис. 6-5. Приложение RadioButtonApp

В левой части этого окна находятся флажки, предназначенные для изменения цвета фона надписи «Выберите цвет фона и текста», а в правой — для изменения цвета этой надписи.

Панели GroupBox и Panel

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

Элемент управления GroupBox снабжается рамкой с надписью, объясняющей назначение объединяемых внутри рамки элементов управления. Что же касается панели Panel, то она представляет собой прямоугольное окно без надписи, внутри которого можно помещать произвольные объекты. Эта панель может иметь полосы прокрутки.

Добавление объектов в панели

Как наши флажки привязываются к панелям GroupBox и Panel?

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

На этапе инициализации приложения создается сам элемент управления GroupBox (как объект класса System.Windows.Forms.GroupBox), и флажки с зависимой фиксацией:

this.groupBox1 = new System.Windows.Forms.GroupBox();
this.radioButtonBkgRed = new System.Windows.Forms.RadioButton();
this.radioButtonBkgGreen = new System.Windows.Forms.RadioButton();
this.radioButtonBkgBlue = new System.Windows.Forms.RadioButton();
this.radioButtonBkgWhite = new System.Windows.Forms.RadioButton();

Далее флажки добавляются в элемент управления GroupBox при помощи метода AddRange:

//
// groupBox1
//
this.groupBox1.Controls.AddRange(
new System.Windows.Forms.Control[]
{
this.radioButtonBkgWhite,
this.radioButtonBkgBlue,
this.radioButtonBkgGreen,
this.radioButtonBkgRed
});

Таким образом, флажки оказываются добавленными к панели groupBox1 класса GroupBox. Далее программа настраивает свойства панели GroupBox, определяющие ее расположение, размеры, текст надписи и т.д.:

this.groupBox1.Location = new System.Drawing.Point(24, 16);
this.groupBox1.Name = " groupBox1";
this.groupBox1.Size = new System.Drawing.Size(152, 136);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = " Укажите цвет фона";

Аналогичным образом создается панель panel1 класса Panel, надпись и флажки, расположенные внутри панели:

this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.radioButtonForeRed = new System.Windows.Forms.RadioButton();
this.radioButtonForeGreen = new System.Windows.Forms.RadioButton();
this.radioButtonForeBlue = new System.Windows.Forms.RadioButton();
this.radioButtonForeBlack = new System.Windows.Forms.RadioButton();

Все объекты, расположенные внутри правой панели, добавляются в нее все тем же методом AddRange:

//
// panel1
//
this.panel1.Controls.AddRange(
new System.Windows.Forms.Control[]
{
this.radioButtonForeBlack,
this.radioButtonForeBlue,
this.radioButtonForeGreen,
this.radioButtonForeRed,
this.label1
});
this.panel1.Location = new System.Drawing.Point(192, 8);
this.panel1.Name = " panel1";
this.panel1.Size = new System.Drawing.Size(152, 144);
this.panel1.TabIndex = 1;

Обратите внимание, что в панель panel1 добавляются не только флажки, но и надпись label1 класса Label.

Обработка событий

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

Чтобы создать обработчик событий bkgChanged для группы флажков, отвечающих за изменение цвета фона нашей надписи, выделите любой флажок в группе Укажите цвет фона. Затем в окне Properties откройте вкладку событий, введите в поле CheckedChanged строку bkgChanged и нажмите клавишу Enter. В результате будет создано тело обработчика событий bkgChanged.

Рис. 6-6. Создание обработчика события CheckedChanged

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

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.