Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 525
Эндрю Троелсен
private void InitializеComponent() {
…
// RadioRed
this.radioRed.Name = "radioRed";
this.radioRed.Size = nеw System.Drawing.Size(04, 23);
this.radioRed.Text = ''Красный";
//
// groupBoxColor
//
…
this.groupBoxColor.Controls.Add(this.radioRed);
this.groupBoxColor.Text = "Цвет";
this.groupBoxColor.Enter += new System.EventHandler(this.groupBoxColor_Enter);
this.groupBoxColor.Leave += new System.EventHandler(this.groupBoxColor_Leave);
…
}
Понятно, что нет никакой необходимости выполнять захват событий Enter и Leave в GroupBox. Однако, для примера, обновите в обработчиках событий текст заголовка GroupBox, как показано ниже.
// Индикация посещения группы.
private void groupBoxColor_Leave(object sender, EventArgs e) {
groupBoxColor.Text = "Цвет: спасибо, за посещение этой группы…";
}
private void groupBoxColor_Enter(object sender, EventArgs e) {
groupBoxColor.Text = "Цвет: вы находитесь в этой группе…";
}
Последними элементами графического интерфейса в этой форме будут типы Label и Button, которые также будут сконфигурированы и вставлены в коллекцию Controls формы с помощью InitializeComponent(). Тип Label используется для отображения информации заказа, формирующейся в обработчике события Click кнопки Button подтверждения заказа, как показано ниже.
private void btnOrder_Click(object sender, System.EventArgs e) {
// Построение строки для отображения информации.
string orderInfo = "";
if (checkFloorMats.Checked) orderInfo += "Вы хотите заказать коврики.\n";
if (radioRed.Checked) orderInfo += "Вы выбрали красный цвет.\n";
if (radioYellow.Checked) orderInfo += "Вы выбрали желтый цвет.\n";
if (radioGreen.Checked) orderInfo += "Вы выбрали зеленый цвет.\n";
if (radioPink.Checked) orderInfo += "А почему РОЗОВЫЙ цвет?\n";
// Отправка строки элементу Label.
infoLabel.Text = orderInfo;
}
Обратите внимание на то, что как CheckBox, так и RadioButton поддерживают свойство Checked, которое позволяет выяснить текущее состояние элемента. Кроме того, напомним, что если вы сконфигурировали CheckBox с тремя состояниями, то состояние элемента нужно проверять с помощью свойства CheckState.
Элемент CheckedListBox
Теперь, завершив исследование базовых элементов управления Button, давайте рассмотрим набор типов списка, в частности CheckedListBox, ListBox и ComboBox. Элемент управления CheckedListBox (окно отмечаемого списка) позволяет сгруппировать соответствующие элементы CheckBox в список, допускающий прокрутку. Предположим, что вы добавили в форму элемент управления CarConfig, дающий пользователю возможность указать на выбор ряд характеристик, которым должна удовлетворять система звуковоспроизведения автомобиля (рис. 21.9).
Рис. 21.9. Тип CheckedListBox
Чтобы добавить в CheckedListBox новые элементы, вызовите Add() для каждого элемента или используйте метод AddRange() с массивом объектов (строк, если быть точным), представляющих весь набор отмечаемых элементов управления. Следует знать о том, что в режиме проектирования любой тип списка можно заполнить с помощью свойств Items в окне свойств (просто щелкните на кнопке с многоточием и введите подходящие строковые значения). Вот часть программного кода InitializeComponent(), соответствующая конфигурации CheckedListBox.