Как получить значение кнопок радио?
У меня есть групповой ящик, например, переключатели.
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;
}