RadioButton(ラジオボタン)とは
RadioButton(ラジオボタン)とは、とあるグループの中から1つの項目を選択させるためのコントロールです。例えば、性別グループの「男性」「女性」「その他」を選ばせるみたいな感じのやつです。
グルーピング
基本的に同一のコンテナ(パネル等)上にあるラジオボタンは同一のグループと認識され、その中の1つの項目のみを選択することができます。
<StackPanel Margin="10"> <RadioButton x:Name="ARadioButton" Content="AAA" FontSize="20"/> <RadioButton x:Name="BRadioButton" Content="BBB" FontSize="20"/> </StackPanel>
<StackPanel> <StackPanel Margin="10"> <RadioButton x:Name="ARadioButton" Content="AAA" FontSize="20"/> <RadioButton x:Name="BRadioButton" Content="BBB" FontSize="20"/> </StackPanel> <StackPanel Margin="10"> <RadioButton x:Name="CRadioButton" Content="CCC" FontSize="20"/> <RadioButton x:Name="DRadioButton" Content="DDD" FontSize="20"/> </StackPanel> </StackPanel>
パネルを2つに分けたため、AAA、BBBのグループとCCC、DDDのグループで別々に動作します。
GroupName
GroupNameプロパティを指定すると、同一のコンテナ(パネル等)上にあっても、別のグループとして動作させることができます。
<StackPanel Margin="10"> <RadioButton x:Name="CRadioButton" Content="CCC" FontSize="20"/> <RadioButton x:Name="DRadioButton" Content="DDD" FontSize="20"/> <RadioButton x:Name="ERadioButton" Content="EEE" FontSize="20" GroupName="1"/> <RadioButton x:Name="FRadioButton" Content="FFF" FontSize="20" GroupName="1"/> </StackPanel>
4つのラジオボタンが同一のパネル上にありますが、EEEとFFFにGroupNameを指定しているため、CCC、DDDのグループと、EEE、FFFのグループは別グループとして動作します。
状態
状態は、チェックボックスと同様にIsCheckedで確認できます。内容はTrue、False、null(未確定)の3種類です。
イベント
イベントはChecked、Uncheckedで通知されます。Indeterminateの通知も受けることができますが、あまり用途はないような気がします。
サンプルコード
<Window x:Class="WPF015.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WPF015" mc:Ignorable="d" Title="MainWindow" Height="300" Width="300"> <Grid> <StackPanel> <StackPanel Margin="10"> <RadioButton x:Name="ARadioButton" Content="AAA" FontSize="20" Checked="ARadioButton_Checked"/> <RadioButton x:Name="BRadioButton" Content="BBB" FontSize="20" Checked="BRadioButton_Checked"/> </StackPanel> <StackPanel Margin="10"> <RadioButton x:Name="CRadioButton" Content="CCC" FontSize="20" Checked="CRadioButton_Checked"/> <RadioButton x:Name="DRadioButton" Content="DDD" FontSize="20" Checked="CRadioButton_Checked"/> <RadioButton x:Name="ERadioButton" Content="EEE" FontSize="20" GroupName="1"/> <RadioButton x:Name="FRadioButton" Content="FFF" FontSize="20" GroupName="1"/> </StackPanel> </StackPanel> </Grid> </Window>
AAAとBBBはそれぞれにCheckedイベントを実装。CCC、DDDはCRadioButton_Checkedという同じCheckedイベントを実装。
using System.Windows; using System.Windows.Controls; namespace WPF015 { /// /// MainWindow.xaml の相互作用ロジック /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void ARadioButton_Checked(object sender, RoutedEventArgs e) { } private void BRadioButton_Checked(object sender, RoutedEventArgs e) { } private void CRadioButton_Checked(object sender, RoutedEventArgs e) { var radioButton = sender as RadioButton; if(radioButton == CRadioButton) { } else if(radioButton == DRadioButton) { } } } }
ARadioButtonとBRadioButtonはそれぞれのCheckedイベントにチェック状態になると通知されますが、CRadioButtonとDRadioButtonは同一のCRadioButton_Checkedに通知されるため、イベントの中で、どちらの通知かを判断して処理をすることができます。
<画面イメージ>
- C#WPFの道#1!WPFのプロジェクト作成方法をわかりやすく解説!
- C#WPFの道#2!StackPanelの使い方をわかりやすく解説!
- C#WPFの道#3!Gridの使い方をわかりやすく解説!
- C#WPFの道#4!コントロールの名前の付け方をわかりやすく解説!
- C#WPFの道#5!イベントの定義の仕方をわかりやすく解説!
- C#WPFの道#6!リソースとStaticResourceの定義と使い方をわかりやすく解説!
- C#WPFの道#7!コントロールのスタイル定義のやり方をわかりやすく解説!
- C#WPFの道#8!グループごとのスタイル定義とBasedOnでの継承のやり方!
- C#WPFの道#9!SQLiteの使い方をわかりやすく解説!
- C#WPFの道#10!ListViewの使い方をわかりやすく解説!
- C#WPFの道#11!ListViewのフィルタリングの方法を解説!
- C#WPFの道#12!SQLiteとListViewでマスタ設定画面の作成!
- C#WPFの道#13!Buttonに画像と文字を並べる方法とRepeatButtonとToggleButton
- C#WPFの道#14!CheckBoxとIsThreeState、Indeterminateの使い方
- C#WPFの道#15!RadioButtonの書き方と使い方を解説
- C#WPFの道#16!Expanderの書き方と使い方を解りやすく解説
- C#WPFの道#17!GroupBoxの書き方と使い方を解りやすく解説
- C#WPFの道#18!Slider(スライダー)の書き方と使い方を解りやすく解説
- C#WPFの道#19!ProgressBarの書き方と使い方を解りやすく解説
- C#WPFの道#20!ComboBoxの書き方と使い方を解りやすく解説
- C#WPFの道#21!ListBoxの書き方と使い方を解りやすく解説
- C#WPFの道#22!TabControlの書き方と使い方を解りやすく解説
- C#WPFの道#23!TreeViewの書き方と使い方を解りやすく解説
- C#WPFの道#24!TextBlock,TextBoxの改行と文字の加工を解説
- C#WPFの道#25!Menuの書き方と使い方をわかりやすく解説!
- C#WPFの道#26!ToolBarの書き方と使い方をわかりやすく解説!
- C#WPFの道#27!StatusBarの書き方と使い方をわかりやすく解説!
- C#WPFの道#28!WrapPanelの書き方と使い方をわかりやすく解説!
- C#WPFの道#29!DockPanelの書き方と使い方をわかりやすく解説!
- C#WPFの道#30!Canvasの書き方と使い方をわかりやすく解説!