web-dev-qa-db-ja.com

ラジオボタンの価値を得るには?

グループボックスにはラジオボタンが含まれています。

o男性

o女性

私は自分のコードにラジオボタンの選択された値を取得し、それを文字列型変数にコピーしてください。

ありがとう

13
salman

Winフォームの場合:

ラジオボタンから値を取得するには(テキストではなく値が必要であると想定)、Checkedプロパティを取得します。

string value = "";
bool isChecked = radioButton1.Checked;
if(isChecked )
  value=radioButton1.Text;
else
  value=radioButton2.Text;

Webフォームの場合:

<asp:RadioButtonList ID="rdoPriceRange" runat="server" RepeatLayout="Flow">
    <asp:ListItem Value="Male">Male</asp:ListItem>
    <asp:ListItem Value="Female">Female</asp:ListItem>
</asp:RadioButtonList>

そしてCS-いくつかのボタンクリックで

string value=rdoPriceRange.SelectedItem.Value.ToString();
22
sajanyamaha

2つある場合は1つを確認する必要があります

if(rbMale.Checked)
{

}
else
{

}

2つ以上の場合は、すべてのチェックボックスをオンにする必要があります

if(rb1.Checked)
{

}
else if(rb2.Checked)
{

}
else if(rb3.Checked)
{

}
5
Adil

ラジオボタンに共通イベントを使用することもできます。また、 Tag プロパティを使用して文字列に情報を渡すか、文字列を保持する場合はTextプロパティを使用できますRadioButtonのテキストと同じ値。

このようなもの。

private void radioButton_CheckedChanged(object sender, EventArgs e)
{
    if (((RadioButton)sender).Checked == true)
        sex = ((RadioButton)sender).Tag.ToString();
}
1
Mark Hall

上記の共通イベントを使用するとうまく機能し、次のように共通イベントを設定できることがわかりました。

private void checkChanged(object sender, EventArgs e)
    {
        foreach (RadioButton r in yourPanel.Controls)
        {
            if (r.Checked)
                textBox.Text = r.Text;
        }
    }

もちろん、使用するパネルに他のコントロールを配置することはできませんが、すべてのラジオボタンに個別のパネルがある場合(グループボックス内でサブパネルを使用する場合や、整理したい場合など)あなたのコントロール)

1
Corey Senger

別の方法は、enumおよび標準のRadioButtonを拡張するコンポーネントクラスを使用することです。

public enum Genders
{
    Male,
    Female
}

[ToolboxBitmap(typeof(RadioButton))]
public partial class GenderRadioButton : RadioButton
{
    public GenderRadioButton()
    {
        InitializeComponent();
    }

    public GenderRadioButton (IContainer container)
    {
        container.Add(this);

        InitializeComponent();
    }

    public Genders gender{ get; set; }
}

GenderRadioButtonsに共通のイベントハンドラーを使用する

private void Gender_CheckedChanged(Object sender, EventArgs e)
{
    if (((RadioButton)sender).Checked)
    {
        //get selected value
        Genders myGender = ((GenderRadioButton)sender).Gender;
        //get the name of the enum value
        string GenderName = Enum.GetName(typeof(Genders ), myGender);
        //do any work required when you change gender
        switch (myGender)
        {
            case Genders.Male:
                break;
            case Genders.Female:
                break;
            default:
                break;
        }
    }
}
1
fatoms

Windowsフォーム

チェックするラジオボタンが複数ある場合、この機能は非常にコンパクトです。

/// <summary>
/// Get the value of the radio button that is checked.
/// </summary>
/// <param name="buttons">The radio buttons to look through</param>
/// <returns>The name of the radio button that is checked</returns>
public static string GetCheckedRadioButton(params RadioButton[] radioButtons)
{
    // Look at each button, returning the text of the one that is checked.
    foreach (RadioButton button in radioButtons)
    {
        if (button.Checked)
            return button.Text;
    }
    return null;
}
0
KYDronePilot