J'ai une zone de groupe contenant des boutons radio.
o Homme
o Femme
je veux que mon code obtienne la valeur sélectionnée du bouton radio et le copie dans une variable de type chaîne.
merci
For Win Forms:
Pour obtenir la valeur (en supposant que vous voulez la valeur, pas le texte) à partir d'un bouton radio, vous obtenez la propriété Checked:
string value = "";
bool isChecked = radioButton1.Checked;
if(isChecked )
value=radioButton1.Text;
else
value=radioButton2.Text;
Pour les formulaires 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>
Et CS-en un clic de bouton
string value=rdoPriceRange.SelectedItem.Value.ToString();
Vous devez en cocher une si vous en avez deux
if(rbMale.Checked)
{
}
else
{
}
Vous devez cocher toutes les cases si plus de deux
if(rb1.Checked)
{
}
else if(rb2.Checked)
{
}
else if(rb3.Checked)
{
}
Vous pouvez également utiliser un événement commun pour vos boutons radio et utiliser la propriété Tag
pour transmettre des informations à votre chaîne. Vous pouvez également utiliser la propriété Text si vous souhaitez que votre chaîne contienne la même valeur que le texte de votre texte. Bouton radio.
Quelque chose comme ça.
private void radioButton_CheckedChanged(object sender, EventArgs e)
{
if (((RadioButton)sender).Checked == true)
sex = ((RadioButton)sender).Tag.ToString();
}
J'ai constaté que l'utilisation de l'événement commun décrit ci-dessus fonctionne bien et que vous pouvez configurer l'événement commun de la manière suivante:
private void checkChanged(object sender, EventArgs e)
{
foreach (RadioButton r in yourPanel.Controls)
{
if (r.Checked)
textBox.Text = r.Text;
}
}
Bien sûr, vous ne pouvez pas utiliser d’autres contrôles dans votre panneau, mais il est utile si vous avez juste un panneau séparé pour tous vos boutons radio (par exemple, utiliser un sous-panneau dans une zone de groupe ou organiser de vos contrôles)
Une alternative consiste à utiliser une énumération et une classe de composant qui étend le standard 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; }
}
Utilisez un gestionnaire d'événement commun pour les boutons GenderRadio
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;
}
}
}