Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 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.