RadioButtonコントロールはGroupBoxやPnaelコントロール上に配置することでグループ化できます。
たとえばフォーム上に「性別」という選択肢と「メインで使用する開発言語」という選択肢をしようしたい場合は、グループ化する必要があります。
グループ化しなければ、フォームに配置したすべてのRadioButtonコントロールが同一グループと見なされますので注意が必要です。
下記は、GroupBoxコントロールを使用してグループ化する例です。
[選択状態を表示]ボタンがクリックされると、現在選択されているのがどの項目かを表すメッセージを表示します。
GroupBoxコントロールのControlsプロパティを参照し、どの項目がチェックされているのかを調べています。
VBの例
' [選択状態を表示]ボタンクリック時の処理 Private Sub btnShowMsg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowMsg.Click Dim msg As String = "" '性別(GroupBox1)の選択項目を取得 For Each rdoSex As Windows.Forms.RadioButton In GroupBox1.Controls If rdoSex.Checked Then msg = "性別は " & rdoSex.Text & ControlChars.NewLine Exit For End If Next 'メインで使用している言語(GroupBox2)の選択項目を取得 For Each rdoLanguage As Windows.Forms.RadioButton In GroupBox2.Controls If rdoLanguage.Checked Then msg &= "メインで使用している言語は " & rdoLanguage.Text & ControlChars.NewLine & "が選択されています" Exit For End If Next 'メッセージの表示 MessageBox.Show(msg) End Sub
C#の例
// [選択状態を表示]ボタンクリック時の処理 private void btnShowMsg_Click(object sender, EventArgs e) { string msg = ""; // 性別(GroupBox1)の選択項目を取得 foreach (System.Windows.Forms.RadioButton rdoSex in groupBox1.Controls) { if ( rdoSex.Checked ) { msg = "性別は " + rdoSex.Text + "\r\n"; break; } } // メインで使用している言語(GroupBox2)の選択項目を取得 foreach (System.Windows.Forms.RadioButton rdoLanguage in groupBox2.Controls) { if (rdoLanguage.Checked) { msg += "メインで使用している言語は " + rdoLanguage.Text + "\r\nが選択されています"; // メッセージの表示 MessageBox.Show(msg); } } }
Please follow and like us:
コメント