CheckBox
Компонент CheckBox (рис. 3.8) представляет флажок, который может нахо-диться в одном из двух состояний: выбранном или невыбранном. Часто вме-сто "выбранный" говорят "установленный", а вместо "невыбранный" — "сброшенный" или "выключенный". Рядом с флажком, как правило, находит-ся поясняющий текст. Компоненты CheckBox обычно используют для выбора нескольких опций из ряда возможных.
Свойства компонента CheckBox приведены в табл. 3.4.
Рис. 3.8. Компонент CheckBox
74
|
Часть I. Microsoft Visual C++ 2010
|
|
|
|
|
|
|
Таблица 3.4. Свойства компонента CheckBox
|
|
|
|
|
|
Свойство
|
Описание
|
|
|
|
|
|
|
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). При этом возникает событие
Глава 3. Базовые компоненты
|
75
|
|
|
CheckedChanged, а потом событие Click. Если значение свойства AutoCheck равно False, то в результате щелчка на флажке возникает событие Click, а затем, если процедура обработки этого события изменит состояние кнопки, возникает событие CheckedChanged.
Следующая программа (ее окно приведено на рис. 3.9, а текст — в листин-ге 3.4) демонстрирует использование компонента CheckBox. Программа по-зволяет посчитать цену автомобиля в зависимости от выбранной комплекта-ции.
Рис. 3.9. Окно программы "Комплектация"
Листинг 3.4. Комплектация (компонент CheckBox)
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;
}
76 Часть I. Microsoft Visual C++ 2010
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;
}
Глава 3. Базовые компоненты
|
77
|
|
|
Щелчок на компоненте CheckBox.
Функция обрабатывает событие Click на
компонентах checkBox1, ..., checkBox4
private: System::Void checkBox1_Click(System::Object^ sender, System::EventArgs^ e)
{
label2->Text = "";
}
Для отображения картинки в окне программы "Комплектация" используется компонент PictureBox. Картинка загружается в компонент из файла, который должен находиться в том же каталоге, что и выполняемый файл. Картинка загружается во время работы программы. Делает это конструктор формы (листинг 3.5). Если картинка находится в папке иллюстраций пользователя (Мои рисунки), то получить путь к файлу иллюстрации можно, вызвав функ-
цию Sys-tem::Environment::GetFolderPath(System::Environment::SpecialFolder::
MyPictures).
Листинг 3.5. Конструктор формы
Form1(void)
{
InitializeComponent();
this->pictureBox1->Image =
Image::FromFile(Application::StartupPath+"\\Lacetti_r.jpg");
}
Достарыңызбен бөлісу: |