Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 196

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 190 191 192 193 194 195 < 196 > 197 198 199 200 201 202 .. 320 >> Следующая

Некоторые возможности переключателей и флажков
Проиллюстрируем возможности типов CheckBox, RadioButton и GroupBox на примере нового приложения, которое будет называться CarConfig. На главной форме будет определено несколько элементов управления, при помощи которых пользователь выберет некоторые характеристики автомобиля. Интерфейс нашего приложения представлен на рис. 10,10.
— ICJl х|
, W 1¦XtIi Floor Mats
¦ Екіеііог Coin: 1 hanks f of viAg She group... - ¦¦ -
С Green
Yellow
Г Red
Pink
You want floor mate.
Why do you want a PINK ЄКІЄІІИ?
Рис. 10.10. Флажок и переключатели в группирующей рамке на форме
Код, относящийся к созданию элементов управления, мы приводить не будем — начнем сразу с настройки их параметров. Прежде всего мы настроим свойства
флажка:
Работаем с переключателями и группирующими рамками 485
// Настраиваем свойства флажка
checkFloorHats.Location = new System.Drawing.Point (16, 16): checkFloorMats.Text = "Extra Floor Mats"; checkFloorMats.Size = new System.Drawing.Size (136. 24): checkFloorHats .FlatStyle = System ,Windows. Forms. FlatStyle. Popup-.
// Добавляен его в коллекцию Controls
this.Controls.AddCthi s.checkFloorMats):
С точки зрения программного кода добавление элементов управления (переключателей) в группирующую рамку — это добавление их объектов в коллекцию Control s соответствующего объекта GroupBox. Производится оно точно так же, как и добавление элементов управления в коллекцию Controls для формы. Чтобы было интереснее, мы еще и настроим обработчики событий Enter и Leave для нашего объекта GroupBox. Эти события возникают, когда фокус переходит к объекту в группирующей рамке и к объекту за его пределами:
// Настраиваем "желтый" переключатель
radioYellow.Location - new System.Drawing.Point (96. 24);
radioYellow.Text = "Yellow";
radioYellow.Size - new System.Drawing.Size (64, 23);
// "Зеленый", "красный" и "розовый" переключатели настраиваются // аналогичным образом...
//А теперь создаем группирующую ранку и помещаем в нее переключатели
groupBoxl.Location = new System.Drawing.Point (16. 56);
groupBoxl. Text - "Exterior Color";
groupBoxl.Size = new System.Drawing.Size (264. 88);
groupBoxl.Leave +- new System.EventHandler (groupBoxl_Leave); groupBoxl,Enter += new System.EventHandler (groupBoxl_Enter):
groupBoxl.Controls.Add (this.radioPInk): grouoBoxl .Controls .Arid (this. radioYel low) -. groupBoxl.Controls. Add (thi s. radi ofted); groupBoxl.Controls.Add Cthis.radloGreen);
В подавляющем большинстве случаев обработчики событий Enter и Leave для группирующей рамки не используются. Мы (исключительно для примера) настроим их таким образом, что при возникновении этих событий текст в заголовке рамки будет изменяться:
// Реагируем на получение и потерю фокуса эленентаии в группирующей ранке
protected void group8oxl_Leave (object sender. System.EventArgs e)
{
groupBoxl .Text = "Exterior Color: Thanks for visiting the group...":
}
protected void groupBoxl Enter (object sender. System.EventArgs e)
і
groupBoxl.Text - "Exterior Color: You are in the group..."}
Последние элементы управления на форме - текстовое поле infoLabel и кнопку МпОгаегтакже необходимо настроить. При щелчке на кнопке btn Order текст в info-Label будет изменяться:
486 Глава 10 * Элементы управления
protected void LunOrder_CI ick (object sender. System. EventArgs e)
Il Создаем перененную для хранения отображаемой информации string orderlnfo = "";
і f(checkFloorMats. Checked)
orderlnfo "You want floor mats.'.-n":
іf(radioRed.Checked)
orderlnfo "You want a red exterior An":
і f(rad і oYe11ow.Checked)
orderlnfo +- "You want a yellow exterior.
Iff radioGreen.Checked)
orderlnfo +- "You want a green exterior.\n":
iffradioPink.Checked)
orderlnfo += ¦"«ry do you want a PINK exterior?\n";
Il выводим значение в текстовой поле infoLabel.Text = orderlnfo;
I
И флажок (CheckBox), и переключатель (RadioButton) поддерживают свойство Checked, при помощи которого очень удобно получать информацию о состоянии соответственно флажка и переключателя. Однако если есть необходимость задействовать дополнительное третье состояние флажка (не определено — Indeterminate), то нам придется вместо Checked использовать свойство CheckState и значения из одноименного перечисления CheckState.
Элемент управления CheckedListBox
Типы Button, CheckBox и RadioButton являются производными от Buttor,3ase, и их можно определить как некие разновидности кнопок. Следующие несколько разделов этой главы будут посвящены типам, которые можно назвать членами семейства списков. К этим типам относятся CheckedListBox (список с флажками), ListBox (список) и ComboBox (комбинированный список). Первый на очереди -CheckedListBox.
Элемент управления CheckedListBox (список с флажками) позволяет помещать обычные флажки внутри поля с полосами прокрутки. Вот пример применения CheckedListBox: предположим, что в нашем приложении CarConfig мы с помощью этого элемента управления предоставили пользователям возможность выбирать дополнительные аудиоустройства (рис. 10.11).
Предыдущая << 1 .. 190 191 192 193 194 195 < 196 > 197 198 199 200 201 202 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100