Практическое руководство. Создание переключателя для выбора одной из нескольких установок на базе элементов управления RadioButton в Windows Forms
Элементы управления RadioButton в Windows Forms позволяют пользователям выбирать между двумя или более параметрами, из которых только один может быть назначен процедуре или объекту. Например, группа элементов управления RadioButton может отображать выбор транспортной компании для доставки заказа, но выбрать можно только одну транспортную компанию. Таким образом, можно выбрать только один элемент управления RadioButton за раз, даже если он является частью функциональной группы.
Вы группируете переключатели, размещая их внутри контейнера, например элемента управления Panel, элемента управления GroupBox или формы. Все переключатели, добавляемые непосредственно в форму, становятся одной группой. Чтобы добавить отдельные группы, их необходимо разместить в панелях или группах. Дополнительные сведения о панелях или группах см. в разделе Обзор элемента управления Panel или Обзор элемента управления GroupBox.
Группирование элементов управления RadioButton в качестве набора для работы независимо от других наборов
- Перетащите элемент управления GroupBox или Panel из вкладки Windows Formsпанели элементов на форму.
- Нарисуйте элементы управления RadioButton на элементе управления GroupBox или Panel.
См. также
- RadioButton
- Общие сведения об элементе управления RadioButton
- Общие сведения об элементе управления Panel
- Общие сведения об элементе управления GroupBox
- Общие сведения об элементе управления CheckBox
- Элемент управления RadioButton
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Как сгруппировать radiobutton c
Предположим, на форме нужно разместить несколько независимых групп радиокнопок. Группируются радиокнопки как обычно — с помощью контрола Group Box. Но убогий инструмент визуального редактирования Visual Studio не позволяет включить группирование радиокнопок, даже если Вы их добросовестно разместили на форме, как полагается (каждая группа радиокнопок внутри своего Group Box).

После такого размещения логично ожидать, что группа Radio1/Radio2 будет работать отдельно от группы Radio3/Radio4, но не тут то было — после запуска приложение радиокнопки Radio1, Radio2, Radio3 и Radio4 иногда работают как одна группа. Я долго не мог понять, почему. Оказалось это происходит, если Вы сначала добавили 2 контрола Group Box, а потом 4 контрола Radio Button, даже не подозревая о том, что порядок добавления контролов в форму имеет значение — надо было сначала добавить первый Group Box, потом в него радиокнопки Radio1 и Radio2, потом добавить второй Group Box, и в него добавить радиокнопки Radio3 и Radio4.
Чтобы решить проблему, нужно сделать 2 вещи:
1. Установить в IDE Visual Studio у каждого Group Box, куда помещены радиокнопки, свойство Group в True (по умолчанию оно False).

2. Любым текстовым редактором вручную отредактировать файл ресурсов *.rc. Если Ваш проект называется testradio, то файл ресурсов будет называться testradio.rc. Когда его откроете, секция описания контролов на форме будет такого вида:

Нужно вторую строк GROUPBOX переставить перед CONTROL Radio3, это включит разделение радиокнопок Radio1, Radio2, Radio3 и Radio4 на две группы:
После такой правки группа Radio1/Radio2 будет работать отдельно от группы Radio3/Radio4.
Другой способ решения проблемы — все контролы удалить и разместить их заново в требуемой последовательности (не забываем установить у контролов Group Box свойство Group в True). Причем важен именно порядок добавления контролов, а не место размещения радиокнопок — их можно даже поместить не в область Group Box.
Работа с RadioButton в C#


RadioButton в C# — это элемент управления, позволяющий пользователю выбрать один из нескольких вариантов. Представьте себе группу переключателей в реальной жизни, например, выбор размера кофе в кофейне: маленький, средний или большой. Вы можете выбрать только один размер — это и есть суть RadioButton.
Как использовать RadioButton
RadioButton обычно используют в Windows Forms приложениях в C#. Давайте создадим простое приложение, в котором вы сможете выбрать, например, любимый цвет.
Шаг 1: Создание проекта
- Откройте Visual Studio.
- Создайте новый проект Windows Forms App (.NET Framework).
- Назовите его, например, RadioButtonExample .
Шаг 2: Дизайн формы
- Перетащите несколько элементов RadioButton на форму из Toolbox.
- Дайте им четкие имена через свойство Name , например, redRadioButton , blueRadioButton .
- Установите свойство Text каждой кнопки соответственно их функциям: “Красный”, “Синий” и так далее.
Шаг 3: Работа с RadioButton
После размещения RadioButton на форме, можно управлять ими через код. Добавим код, который будет отображать выбор пользователя.
Добавление обработчика событий
Для каждой RadioButton мы добавим обработчик события CheckedChanged , который будет вызываться, когда выбрана определенная кнопка.
Для этого дважды кликните на RadioButton в дизайнере форм, Visual Studio автоматически создаст метод обработчика событий.
private void redRadioButton_CheckedChanged(object sender, EventArgs e) < if (redRadioButton.Checked) < MessageBox.Show("Выбран красный цвет"); > > private void blueRadioButton_CheckedChanged(object sender, EventArgs e) < if (blueRadioButton.Checked) < MessageBox.Show("Выбран синий цвет"); > >
В этом коде при выборе RadioButton срабатывает событие CheckedChanged , и если RadioButton.Checked равно true , то есть если кнопка выбрана, появляется сообщение с текстом выбранного цвета.
Читайте так же Компонент RichTextBox C# — Подробный разбор и примеры
Примеры использования
Пример 1: Группировка RadioButton
RadioButton можно группировать, помещая их в один контейнер, например, в GroupBox . Все кнопки в одной группе автоматически становятся взаимоисключающими — можно выбрать только одну из них.
Пример 2: Получение выбранного значения
Часто нам нужно получить значение выбранного RadioButton. Можно это сделать, проверяя свойство Checked каждой кнопки:
private void submitButton_Click(object sender, EventArgs e) < if (redRadioButton.Checked) < // Код для обработки выбора "Красный" > else if (blueRadioButton.Checked) < // Код для обработки выбора "Синий" > // и так далее >
Заключение
RadioButton в C# — это простой и удобный способ предложить пользователю выбор из нескольких вариантов, где возможен только один выбор. Использование RadioButton в ваших приложениях делает интерфейс понятным и удобным. Теперь, когда вы знаете основы работы с RadioButton в C#, вы можете легко интегрировать этот элемент управления в свои проекты, предоставляя пользователю чистый и интуитивно понятный способ выбора.
Radio Button Класс
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет переключатель, который пользователь может устанавливать, но не снимать. Свойство IsChecked элемента RadioButton устанавливается, когда пользователь щелкает этот элемент, но очистить свойство можно только программным способом.
public ref class RadioButton : System::Windows::Controls::Primitives::ToggleButton
[System.Windows.Localizability(System.Windows.LocalizationCategory.RadioButton)] public class RadioButton : System.Windows.Controls.Primitives.ToggleButton
[] type RadioButton = class inherit ToggleButton
Public Class RadioButton Inherits ToggleButton
Наследование
RadioButton
Производный
Примеры
В следующем примере показано, как создать RadioButton элементы управления, сгруппировать их в контейнере и обработать Checked событие .
Yes No No opinion
void WriteText2(object sender, RoutedEventArgs e)
Private Sub WriteText2(ByVal Sender As Object, ByVal e As RoutedEventArgs) Dim li As RadioButton = CType(Sender, RadioButton) txtb.Text = "You clicked " + li.Content.ToString() + "." End Sub
В следующем примере кода создаются две отдельные RadioButton группы: colorgrp и numgrp . Пользователь может выбрать один из RadioButton них в каждой группе.
Red Blue 1 2
Комментарии
— RadioButton это ContentControl, что означает, что он может содержать один объект любого типа (например, строку, изображение или панель). Дополнительные сведения см. в описании класса ContentControl.
Имеет RadioButton два состояния: true или false . — RadioButton это элемент управления, который обычно используется в качестве элемента в группе RadioButton элементов управления. Однако можно создать один экземпляр RadioButton. RadioButton Выбор объекта определяется состоянием его IsChecked свойства.
RadioButton Если выбран объект , его нельзя очистить, щелкнув его. При RadioButton группировке элементов кнопки являются взаимоисключающими. Пользователь может выбрать только один элемент в группе одновременно RadioButton . Элементы управления можно группировать RadioButton , поместив их внутри родительского элемента или задав GroupName свойство для каждого RadioButtonэлемента управления .
Настройка элемента управления RadioButton
Чтобы применить одни и те же параметры свойства к нескольким RadioButton элементам управления, используйте Style свойство . Можно изменять свойства ControlTemplate, заданные по умолчанию, чтобы придать элементу управления уникальный внешний вид. Дополнительные сведения о создании см. в ControlTemplateразделе Настройка внешнего вида существующего элемента управления путем создания controlTemplate. Чтобы просмотреть части и состояния, относящиеся к , см. статью RadioButtonСтили и шаблоны RadioButton.
Свойства зависимостей для этого элемента управления могут быть заданы стилем элемента управления по умолчанию. Если свойство задано стилем по умолчанию, при отображении элемента управления в приложении свойство может измениться по умолчанию. Стиль по умолчанию определяется темой рабочего стола, используемой при запуске приложения.
Визуальное свойство будет действовать, только если оно одновременно присутствует в шаблоне элемента управления по умолчанию и задано с использованием TemplateBinding. Список визуальных свойств доступен в разделе Настройка визуальной структуры элемента управления статьи Настройка внешнего вида существующего элемента управления путем создания объекта ControlTemplate.
Конструкторы
Инициализирует новый экземпляр класса RadioButton.