Как получить значение кнопок радио?

У меня есть групповой ящик, например, переключатели.

o Мужской

o Женщина

я хочу, чтобы мой код получил выбранное значение переключателя и скопировал его в переменную типа строки, любезно используйте простой код, потому что m не очень профессионально

благодаря

Ответ 1

Для Win Forms:

Чтобы получить значение (при условии, что вы хотите, чтобы значение, а не текст) было отключено, вы получаете свойство 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-в некоторых нажатиях кнопки

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

Ответ 2

Вам нужно проверить его, если у вас есть два

if(rbMale.Checked)
{

}
else
{

}

Вы должны проверить все флажки, если больше двух

if(rb1.Checked)
{

}
else if(rb2.Checked)
{

}
else if(rb3.Checked)
{

}

Ответ 3

Вы также можете использовать Common Event для своих RadioButtons, и вы можете использовать свойство Tag для передачи информации в свою строку или вы можете использовать текстовое свойство, если хотите, чтобы ваша строка сохраняла то же значение, что и текст вашего RadioButton.

Что-то вроде этого.

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

Ответ 4

Я обнаружил, что использование Общего события, описанного выше, работает хорошо, и вы можете настроить общее событие следующим образом:

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

Разумеется, тогда вы не можете использовать другие элементы управления на своей панели, но это полезно, если у вас есть отдельная панель для всех ваших переключателей (например, с помощью дополнительной панели внутри группового окна или, тем не менее, вы предпочитаете организовывать ваши элементы управления)

Ответ 5

Альтернативный вариант - использовать перечисление и класс компонентов, который расширяет стандартный 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;
        }
    }
}

Ответ 6

Windows Forms

Для случаев, когда нужно проверить несколько переключателей, эта функция очень компактна:

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