web-dev-qa-db-fra.com

Comment valoriser les boutons radio?

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

13
salman

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();
20
sajanyamaha

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)
{

}
5
Adil

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();
}
1
Mark Hall

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)

1
Corey Senger

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;
        }
    }
}
0
fatoms