Radiobutton c как использовать
Перейти к содержимому

Radiobutton c как использовать

  • автор:

 

Radiobutton c как использовать

Элемент CheckBox или флажок предназначен для установки одного из двух значений: отмечен или не отмечен. Чтобы отметить флажок, надо установить у его свойства Checked значение true .

Кроме свойства Checked у элемента CheckBox имеется свойство CheckState , которое позволяет задать для флажка одно из трех состояний — Checked (отмечен), Indeterminate (флажок не определен — отмечен, но находится в неактивном состоянии) и Unchecked (не отмечен)

Элемент CheckBox в Windows Forms

Также следует отметить свойство AutoCheck — если оно имеет значение false , то мы не можем изменять состояние флажка. По умолчанию оно имеет значение true .

При изменении состояния флажка он генерирует событие CheckedChanged . Обрабатывая это событие, мы можем получать измененный флажок и производить определенные действия:

Radiobutton

На элемент CheckBox похож элемент RadioButton или переключатель. Переключатели располагаются группами, и включение одного переключателя означает отключение всех остальных.

Чтобы установить у переключателя включенное состояние, надо присвоить его свойству Checked значение true .

Для создания группы переключателей, из которых можно бы было выбирать, надо поместить несколько переключателей в какой-нибудь контейнер, например, в элементы GroupBox или Panel. Переключатели. находящиеся в разных контейнерах, будут относиться к разным группам:

Элемент RadioButton в Windows Forms

Похожим образом мы можем перехватывать переключение переключателей в группе, обрабатывая событие CheckedChanged . Связав каждый переключатель группы с одним обработчиком данного события, мы сможем получить тот переключатель, который в данный момент выбран:

C# RadioButton Control

A radio button or option button enables the user to select a single option from a group of choices when paired with other RadioButton controls. When a user clicks on a radio button, it becomes checked, and all other radio buttons with same group become unchecked.

The RadioButton control can display text, an Image, or both. Use the Checked property to get or set the state of a RadioButton.

The radio button and the check box are used for different functions. Use a radio button when you want the user to choose only one option. When you want the user to choose all appropriate options, use a check box. Like check boxes, radio buttons support a Checked property that indicates whether the radio button is selected.

17.8 Работа с переключателями: RadioButton, CheckBox

Переключатели с зависимой фиксацией (RadioButton). Такие флажки объединяются в группы, причем в отмеченном состоянии может находиться лишь один флажок из группы. Флажки с зависимой фиксацией создаются на базе класса System.Windows.Forms.RadioButton.

В левой части этого окна находятся флажки, предназначенные для изменения цвета фона надписи «Выберите цвет фона и текста», а в правой — для изменения цвета этой надписи. Создавая форму главного окна для этого приложения, были іспользованы элементы управления GroupBox и Panel. Элемент управления GroupBox используется для объединения флажков, задающих цвет фона, а элемент управления Panel — цвет текста.

Элемент управления GroupBox снабжается рамкой с надписью, объясняющей назначение объединяемых внутри рамки элементов управления. Что же касается панели Panel, то она представляет собой прямоугольное окно без надписи, внутри которого можно помещать произвольные объекты. Эта панель может иметь полосы прокрутки.

Как наши флажки привязываются к панелям GroupBox и Panel?

Рассмотрим фрагменты кода приложения RadioButtonApp, отвечающие за создание флажков, задающих цвет фона, а также за создание объединяющего их элемента управления GroupBox.

На этапе инициализации приложения создается сам элемент управления GroupBox (как объект класса System.Windows.Forms.GroupBox), и флажки с зависимой фиксацией:

this.groupBox1 = new System.Windows.Forms.GroupBox(); this.radioButtonBkgRed = new System.Windows.Forms.RadioButton(); this.radioButtonBkgGreen = new System.Windows.Forms.RadioButton(); this.radioButtonBkgBlue = new System.Windows.Forms.RadioButton(); this.radioButtonBkgWhite = new System.Windows.Forms.RadioButton();

Далее флажки добавляются в элемент управления GroupBox при помощи метода AddRange:

Аналогичным образом создается панель panel1 класса Panel, надпись и флажки, расположенные внутри панели:

this.panel1 = new System.Windows.Forms.Panel(); this.label1 = new System.Windows.Forms.Label(); this.radioButtonForeRed = new System.Windows.Forms.RadioButton(); this.radioButtonForeGreen = new System.Windows.Forms.RadioButton(); this.radioButtonForeBlue = new System.Windows.Forms.RadioButton(); this.radioButtonForeBlack = new System.Windows.Forms.RadioButton();

Все объекты, расположенные внутри правой панели, добавляются в нее все тем же методом AddRange:

// // panel1 // this.panel1.Controls.AddRange( new System.Windows.Forms.Control[] < this.radioButtonForeBlack, this.radioButtonForeBlue, this.radioButtonForeGreen, this.radioButtonForeRed, this.label1 >); this.panel1.Location = new System.Drawing.Point(192, 8); this.panel1.Name = «panel1»; this.panel1.Size = new System.Drawing.Size(152, 144); this.panel1.TabIndex = 1;

 

Для каждой группы флажков мы создаем свой собственный обработчик события CheckedChanged. Это событие возникает, когда пользователь изменяет состояние флажка, устанавливая или снимая отметку.

Чтобы создать обработчик событий bkgChanged для группы флажков, отвечающих за изменение цвета фона нашей надписи, выделите любой флажок в группе Укажите цвет фона. Затем в окне Properties откройте вкладку событий, введите в поле CheckedChanged строку bkgChanged и нажмите клавишу Enter. В результате будет создано тело обработчика событий bkgChanged.

Далее выделите по очереди все остальные флажки группы Укажите цвет фона, и назначьте для них обработчик событий bkgChanged при помощи только что упомянутого окна Properties. Таким образом, изменение состояния всех флажков группы будет отслеживаться единым обработчиком событий bkgChanged.

Далее повторите эту операцию для второй группы флажков. Назначьте для них обработчик событий foreChanged.

Ниже мы привели модифицированные исходные тексты обработчиков событий bkgChanged и foreChanged:

Эти обработчики событий работают по одинаковому алгоритму. Вначале они сохраняют в переменной rb идентификатор флажка, состояние которого было изменено. Затем обработчики извлекают текст надписи, расположенной возле флажка. В зависимости от этого текста, обработчики изменяют цвет фона или текста надписи label2, расположенной в нижней части главного окна нашего приложения.

Переключатели с независимой фиксацией (CheckBox). Флажки с независимой фиксацией работают независимо друг от друга. При этом не имеет никакого значения, расположены они внутри панелей GroupBox и Panel, или непосредственно в окне приложения. Эти флажки создаются на базе класса System.Windows.Forms.CheckBox.

Как правило, флажки с независимой фиксацией используется в программе, для того чтобы задавать какие-либо режимы, которые можно устанавливать независимо друг от друга.

Такие флажки могут находиться во включенном или выключенном состоянии, а также в третьем, неопределенном состоянии.

Состав свойств флажков с независимой фиксацией, создаваемых на базе класса CheckBox, аналогичен составу свойств флажков с зависимой фиксацией RadioButton. Однако есть и отличия. Свойство Appearance определяет внешний вид флажка. По умолчанию значение этого свойства равно Normal, в результате чего флажок выглядит обычным образом. Если же установить значение этого свойства, равным Button, флажок будет похож на обычную кнопку. В отмеченном состоянии флажок будет нарисован как нажатая кнопка, а в неотмеченном — как отжатая кнопка.

Очень интересное свойство называется ThreeState. Если это свойство имеет значение true, то флажок сможет принимать не два, а три состояния:

Флажок последовательно проходит эти состояния, когда пользователь щелкает его мышью. Состояние флажка можно изменять и программным способом. Для этого нужно изменить значение свойства CheckState.

Если флажок может находиться только в двух состояниях (свойство ThreeState равно false), то это свойство может принимать значения CheckState.Checked (флажок установлен) и CheckState.Unchecked (флажок не установлен).

В том случае, когда значение свойства ThreeState равно true и флажок может принимать три состояния, свойство CheckState может иметь значение CheckState.Indeterminate (неопределенное состояние).

Флажки с независимой фиксацией работают самостоятельно, поэтому для каждого из них обычно предусматривают собственные обработчики событий. Но чаще всего состояние флажков определяется при работе обработчиков событий других элементов управления, таких, например, как кнопки.

Radiobutton c как использовать

На этом шаге мы рассмотрим назначение, основные свойства и пример использования этого компонента .

Компонент RadioButton (рисунок 1) представляет собой переключатель, состояние которого зависит от состояния других переключателей (компонентов RadioButton ).

Рис.1. Компонент RadioButton

Обычно компоненты RadioButton объединяют в группу (достигается это путем размещения нескольких компонентов в поле компонента GroupBox ). В каждый момент времени только один из переключателей группы может находиться в выбранном состоянии (возможна ситуация, когда ни один из переключателей не выбран). Состояние компонентов, принадлежащих одной группе, не зависит от состояния компонентов, принадлежащих другой группе.

Свойства компонента приведены в таблице 1.

Таблица 1. Свойства компонента RadioButton
Свойство Описание
Техt Текст, который находится справа от переключателя
Checked Состояние, внешний вид переключателя. Если переключатель выбран, то значение свойства Checked равно True ; если не выбран, то значение свойства Checked равно 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, а текст — в листинге ниже) демонстрирует использование компонента RadioButton .

Рис.2. Форма программы «Фото»

Программа вычисляет стоимость заказа печати фотографий, в зависимости от их размера. Значения свойств компонентов RadioButton приведены в таблице 2.

Таблица 2. Значения свойств компонентов RadioButton
Свойство Значение
radioButton1.Text 9х12
radioButton1.Checked True
radioButton2.Text 10х15
radioButton3.Text 18х24

Следует обратить внимание: на форму сначала надо поместить компонент GroupBox , затем — компоненты RadioButton . Помимо события Click , возникающего при щелчке на кнопке OK , в программе обрабатывается событие Click компонентов RadioButton . Функция обработки этого события (одна для всех компонентов) очищает поле отображения результата и устанавливает курсор в поле ввода/редактирования.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *