[Tips][RadioButton] グループ化する

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);
        }
    }
}



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください