На этом шаге мы рассмотрим свойства этого компонента и приведем пример его использования.
Компонент GroupBox (рисунок 1) представляет собой контейнер для других компонентов.
Рис.1. Компонент GroupBox
Обычно он используется для объединения в группы компонентов RadioButton по функциональному признаку.
Свойства компонента GroupBox приведены в таблице 1.
Свойство | Описание |
---|---|
Text | Заголовок - текст, поясняющий назначение компонентов, которые находятся в поле компонента GroupBox |
Enabled | Позволяет управлять доступом к компонентам, находящимся в поле (на поверхности) компонента GroupBox. Если значение свойства равно False, то все находящиеся в поле GroupBox компоненты недоступны |
Visible | Позволяет скрыть (сделать невидимым) компонент GroupBox и все компоненты, которые находятся на его поверхности |
Следующая программа (ее форма приведена на рисунке 2, а текст — в листинге ниже) демонстрирует использование компонентов GroupBox и RadioButton.
Рис.2. Форма программы "Фото-2"
Компоненты RadioButton принадлежат к двум разным группам (находятся в полях разных компонентов GroupBox). Это позволяет установить в выбранное состояние два переключателя одновременно, по одному в каждой группе. Значения свойств компонентов GroupBox и RadioButton приведены в таблице 2.
Свойство | Значение |
---|---|
groupBox1.Text | Формат |
radioButton1.Text | 9 х 12 |
radioButton1.Checked | True |
radioButton2.Text | 10 х 15 |
radioButton3.Text | 18 х 24 |
groupBox2.Text | Бумага |
radioButton4.Text | глянцевая |
radioButton4.Checked | True |
radioButton5.Text | матовая |
Программа "Фото-2" (компоненты GroupBox и RadioButton):
// Щелчок на радиокнопке. // Функция обрабатывает событие Click компонентов // radioButton1, ..., radioButton5 private: System::Void radioButton_Click(System::Object^ sender, System::EventArgs^ e) { label2->Text = ""; // установить курсор в поле Количество textBox1->Focus(); } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { double cena = 0 ; // цена int n; // количество фотографий double sum; // сумма String^ format; // формат String^ paper; // бумага // формат if (radioButton1->Checked) { format = "9x12"; cena = 3.50; } if (radioButton2->Checked) { format = "10x15"; cena = 4.50; } if (radioButton3->Checked) { format = "18x24"; cena = 12.0; } // бумага if (radioButton4->Checked) { paper = "глянцевая"; } if (radioButton5->Checked) { paper = "матовая"; cena = cena + 0.5; } n = Convert::ToInt32(textBox1->Text); sum = n * cena; label2->Text = "Формат: " + format + "\nБумага: " + paper + "\nЦена: " + cena.ToString("c") + "\nКоличество: " + n.ToString() + " шт.\n" + "Сумма заказа: " + sum.ToString("C"); } private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) { if (textBox1->Text->Length == 0) button1->Enabled = false; else button1->Enabled = true; label2->Text = ""; } private: System::Void textBox1_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e) { if ((e->KeyChar >= '0') && (e->KeyChar <= '9')) return; if (Char::IsControl(e->KeyChar)) { if (e->KeyChar == (char)Keys::Enter) { // нажата клавиша <Enter> button1->Focus(); } return; } // остальные символы запрещены e->Handled = true; }
На следующем шаге мы рассмотрим компонент ComboBox.