はじめに
RadioButton コントロールは、複数の選択肢の中から一つだけを選択できる UI 要素です。RadioButton は、互いに排他的なグループとして機能し、一度に一つの RadioButton だけが選択状態になります。
RadioButtonのグループ化
フォームに配置されたRadioButton群は、すべて同一のグループに属していると認識されます。このため、フォーム上に配置されたRadioButtonにチェックできるのは、たった一つのRadioButtonに限定されてしまいます。
そこで、GroupBoxコントロールを使用すると、そのグループ内に配置されたRadioButtonは、同一のグループとして取り扱われるようになります。
例えば、下図のように「年齢」「性別」のように、GroupBoxでRadioButtonをグルーピングすれば、それぞれのGroupBox内でRadioButtonにチェックをつけることができるようになります。
コード例
以下は、先ほどのデザイン画面のコード例です。
btnGetData_Clickは、[取得]ボタンクリック時に発動するクリックイベントです。
groupBox1は年齢のグループボックス、groupBox2は性別のグループボックスです。
private void btnGetData_Click(object sender, EventArgs e) { string? selectedOption1 = groupBox1.Controls.OfType().FirstOrDefault(r => r.Checked)?.Text; string? selectedOption2 = groupBox2.Controls.OfType().FirstOrDefault(r => r.Checked)?.Text; MessageBox.Show($"Group 1: {selectedOption1}\nGroup 2: {selectedOption2}"); }
- groupBox1.Controls.OfType<RadioButton>():groupBox1内の全てのRadioButtonのコレクションを取得します。
- FirstOrDefault(r => r.Checked):コレクションから、Checkedプロパティがtrue(選択されている)の最初のRadioButtonを探し、そのオブジェクトを取得します。
- ?.Text:取得したRadioButtonオブジェクトがnullでない場合に限り、そのTextプロパティ(表示されているテキスト)を取得します。nullの場合はnullが返されます。
- selectedOption1変数に、groupBox1内の選択されたRadioButtonのテキストが格納されます。同様に、selectedOption2変数にgroupBox2内の選択されたRadioButtonのテキストが格納されます。
- MessageBox.Show():メッセージボックスを表示します。
- $”Group 1: {selectedOption1}\nGroup 2: {selectedOption2}”:選択されたRadioButtonのテキストを文字列としてフォーマットし、メッセージボックスに表示します。\nは改行コードです。
実行例
実行例は以下の通りです。
まとめ
この記事で示したように、GroupBoxを使用することで、1つのフォーム上で複数のラジオボタングループを作成することができます。
Please follow and like us:
コメント