На этом шаге мы рассмотрим свойства и приведем пример использования этого компонента.
Компонент CheckBox (рисунок 1) представляет флажок, который может находиться в одном из двух состояний: выбранном или невыбранном.
Рис.1. Компонент CheckBox
Часто вместо "выбранный" говорят "установленный", а вместо "невыбранный" — "сброшенный" или "выключенный". Рядом с флажком, как правило, находится поясняющий текст. Компоненты CheckBox обычно используют для выбора нескольких опций из ряда возможных.
Свойства компонента CheckBox приведены в таблице 1.
Свойство | Описание |
---|---|
Text | Текст, поясняющий назначение флажка |
Checked | Состояние (вид) флажка. Если флажок выбран, то значение свойства равно True. Если флажок сброшен, то значение свойства равно False |
TextAllign | Положение текста в поле отображения текста. Текст может располагаться в центре поля (MiddleCenter), быть прижат к левой (MiddleLeft) или правой (MiddleRight) границе. Можно задать и другие способы размещения текста надписи (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight) |
CheckAllign | Положение флажка в поле компонента. Флажок может быть прижат к левой верхней границе (TopLeft), прижат к левой границе и находиться на равном расстоянии от верхней и нижней границ поля компонента (MiddleLeft). Есть и другие варианты размещения флажка в поле компонента |
Enabled | Свойство позволяет сделать флажок недоступным (False) |
Visible | Свойство позволяет скрыть (False) флажок |
AutoCheck | Свойство определяет, должно ли автоматически изменяться состояние флажка в результате щелчка на его изображении. По умолчанию значение равно True |
FlatStyle | Стиль (вид) флажка. Флажок может быть обычным (Standard), плоским (Flat) или "всплывающим" (Popup). Стиль определяет поведение флажка при позиционировании указателя мыши на его изображении |
Appearance | Определяет вид флажка. Флажок может выглядеть обычным образом (Normal) или как кнопка (Button) |
Image | Картинка, которая отображается в поле компонента |
ImageAlign | Положение картинки в поле компонента. Картинка может располагаться в центре (MiddleCenter), быть прижата к левой (MiddleLeft) или правой (MiddleRight) границе. Можно задать и другие способы размещения картинки на кнопке (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight) |
ImageList | Набор картинок, используемых для обозначения различных состояний кнопки. Представляет собой объект типа ImageList. Чтобы задать значение свойства, в форму приложения следует добавить компонент ImageList |
ImageIndex | Номер (индекс) картинки из набора ImageList, которая отображается в поле компонента |
Состояние флажка изменяется в результате щелчка на его изображении (если значение свойства AutoCheck равно True). При этом возникает событие CheckedChanged, а потом событие Click. Если значение свойства AutoCheck равно False, то в результате щелчка на флажке возникает событие Click, а затем, если процедура обработки этого события изменит состояние кнопки, возникает событие CheckedChanged.
Следующая программа (ее окно приведено на рисунке 2, а текст — в листинге ниже) демонстрирует использование компонента CheckBox.
Рис.2. Окно программы "Комплектация"
Программа позволяет посчитать цену автомобиля в зависимости от выбранной комплектации.
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { double cena; // цена в базовой комплектации double dop; // сумма за доп. оборудование double discount; // скидка double total; // общая сумма cena = 415000; dop = 0; if (checkBox1->Checked) { // коврики dop += 1200; } if (checkBox2->Checked) { // защита картера dop += 4500; } if (checkBox3->Checked) { // зимние шины dop += 12000; } if (checkBox4->Checked) { // литые диски dop += 12000; } total = cena + dop; System::String ^st; st = "Цена в выбранной комплектации: " + total.ToString("C"); if (dop != 0) { st += "\nВ том числе доп. оборудование: " + dop.ToString("C"); } if ((checkBox1->Checked) && (checkBox2->Checked) && (checkBox3->Checked) && (checkBox4->Checked)) { // Скидка предоставляется, если // выбраны все опции discount = dop * 0.1; total = total - discount; st += "\nСкидка на доп. оборудование (10%): " + discount.ToString("C") + "\nИтого: " + total.ToString("C"); } label2->Text = st; } private: System::Void checkBox1_Click(System::Object^ sender, System::EventArgs^ e) { label2->Text = ""; }
Для отображения картинки в окне программы "Комплектация" используется компонент PictureBox. Картинка загружается в компонент из файла, который должен находиться в том же каталоге, что и выполняемый файл. Картинка загружается во время работы программы. Делает это конструктор формы:
Form1(void) { InitializeComponent(); // //TODO: добавьте код конструктора // this->pictureBox1->Image = Image::FromFile(Application::StartupPath+"\\Lacetti_r.jpg"); }
Если картинка находится в папке иллюстраций пользователя (Мои рисунки), то получить путь к файлу иллюстрации можно, вызвав функцию System::Environment::GetFolderPath(System::Environment::SpecialFolder:: MyPictures).
На следующем шаге мы рассмотрим компонент RadioButton.