14

我有一个包含单选按钮的组框,例如。

o男性

o女性

我希望我的代码获取单选按钮的选定值并将其复制到字符串类型变量请使用简单的代码,因为我不是很专业

谢谢

4

9 回答 9

23

对于获胜表格:

要从单选按钮中获取值(假设您想要该值,而不是文本),您将获得 Checked 属性:

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

对于网络表单:

<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-in 一些按钮点击

string value=rdoPriceRange.SelectedItem.Value.ToString();
于 2012-11-24T06:59:00.973 回答
8

如果你有两个,你需要检查一个

if(rbMale.Checked)
{

}
else
{

}

如果超过两个,您需要检查所有复选框

if(rb1.Checked)
{

}
else if(rb2.Checked)
{

}
else if(rb3.Checked)
{

}
于 2012-11-24T06:53:52.777 回答
2

您还可以为 RadioButtons 使用 Common Event,并且可以使用该Tag属性将信息传递给您的字符串,或者如果您希望您的字符串与 RadioButton 的 Text 保持相同的值,则可以使用 Text 属性。

像这样的东西。

private void radioButton_CheckedChanged(object sender, EventArgs e)
{
    if (((RadioButton)sender).Checked == true)
        sex = ((RadioButton)sender).Tag.ToString();
}
于 2012-11-24T07:03:05.000 回答
2

我发现使用上述通用事件效果很好,您可以像这样设置通用事件:

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

当然,您不能在面板中使用其他控件,但如果您的所有单选按钮只有一个单独的面板(例如在组框内使用子面板或您更喜欢组织你的控制)

于 2013-07-07T23:49:51.583 回答
2

另一种方法是使用枚举和扩展标准 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;
        }
    }
}
于 2014-07-24T11:23:59.680 回答
1

选中单选按钮时获取值

if (rdbtnSN06.IsChecked == true)
{
string RadiobuttonContent =Convert.ToString(rdbtnSN06.Content.ToString());
}
else
{
string RadiobuttonContent =Convert.ToString(rdbtnSN07.Content.ToString());
}
于 2019-12-19T09:50:30.050 回答
0

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;
}
于 2019-04-20T14:24:41.583 回答
0

你可以像下面这样轻松地做,

_employee.Gender = rbtnMale.Checked?rbtnMale.Text:_employee.Gender;
_employee.Gender = rbtnFemale.Checked?rbtnFemale.Text:_employee.Gender;
于 2021-02-03T07:51:02.790 回答
0

C# WinForm

public string GetCheckedRadioButtonTextByParent(Control parent)
{
    RadioButton checkedRadioButton = parent.Controls.OfType<RadioButton>.FirstOrDefault(r => r.Checked);
    if (checkedRadioButton is object)
    {
        return checkedRadioButton.Text;
    }

    return "";
}

用法 您可以将 RadioButtons 添加到 GroupBox、Panel 或 Form 中,然后通过以下方式获取选中的文本

string selectedText1 = GetCheckedRadioButtonTextByParent(GroupBox1);
string selectedText2 = GetCheckedRadioButtonTextByParent(Panel1);
string selectedText3 = GetCheckedRadioButtonTextByParent(Form1);

VB.NET WinForm

Public Function GetCheckedRadioButtonTextByParent(Byval parent As Control) As String
   Dim checkedRadioButton As RadioButton = parent.Controls.OfType(Of RadioButton).FirstOrDefault(Function(r) r.Checked)
   If checkedRadioButton IsNot Nothing Then
      Return checkedRadioButton.Text
   End If
   Return ""
End Function

用法 您可以将 RadioButtons 添加到 GroupBox、Panel 或 Form 中,然后通过以下方式获取选中的文本

Dim selectedText1 As String = GetCheckedRadioButtonTextByParent(GroupBox1)
Dim selectedText2 As String = GetCheckedRadioButtonTextByParent(Panel1)
Dim selectedText3 As String = GetCheckedRadioButtonTextByParent(Form1)
于 2022-01-27T15:15:00.010 回答