IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

activation/dasactivation radio bouton par click


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 31
    Points : 31
    Points
    31
    Par défaut activation/dasactivation radio bouton par click
    Bonjour tout le monde. le bout de code que vous voyez devrait servir à activer et desactiver suite à un clic un bouton radio isolé. Seulement lorsque le bouton est activé le clic parvient à le desactiver mais jamais le contraire. Coup de main SVP.
    private void radioButton1_Click(object sender, EventArgs e)
    {

    if (radioButton1.Checked == true)
    radioButton1.Checked = false;
    if (radioButton1.Checked != true)
    radioButton1.Checked = true;
    }

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 031
    Points : 5 476
    Points
    5 476
    Par défaut
    Pourquoi ne pas utiliser une checkbox?
    Bon sinon le problème c'est que le radio button va faire son travail avant d'arriver sur l'eventement du click.
    Ce qui veut dire que : s'il n'est pas checked il va le devenir, puis tu va rentrer dans ton evenement.
    Et donc executer ta premiere instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (radioButton1.Checked == true)
                    radioButton1.Checked = false;
    Puis vu qu'il n'y a pas de "else" il fera la suivante dans la foulée (donc remettre à true).

    S'il est deja checked, il va rien faire puis rentrer dans ton event. La ton instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (radioButton1.Checked == true)
                    radioButton1.Checked = false;
    va se reproduire comme au dessus.

    Bref tu peux utiliser plusieurs astuces comme stocker la valeur précedente du checked dans le Tag, utiliser une deuxieme radioBtn invisible, utiliser une variable de classe...
    M'enfin ca devient vite un peu tordu si tu n'as finalement besoin que d'une checkbox

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 31
    Points : 31
    Points
    31
    Par défaut
    merci micka132. Je suis passé passé par un checkbox et par là moins compliqué

  4. #4
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    C'est encore plus simple que ce que vous proposez, ça se fait en une ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    radioButton1.Checked = !radioButton1.Checked
    Mais l'utilisation d'un checkbox est plus adaptée bien sûr

    Bon dév.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Salut
    -----

    C'est encore plus simple que ce que vous proposez, ça se fait en une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    radioButton1.Checked = !radioButton1.Checked
    C'est plus simple, mais je crains que ça ne fonctionne pas mieux, et exactement pour la même raison que le problème d'origine:

    Le fonctionnement même du radiobutton va faire qu'il va d'abord se cocher avant d'appeler l'évènement clic. Du coup, checked sera toujours "true" et "click" invalidera toujours l'action. Le radiobutton ne sera donc jamais coché.

    Il n'y a pas moyen d'obtenir le résultat demandé via "click" seul, du moins pas sans le genre d'astuce indiquée par micka132, parce qu'on ne sait pas tester dans "click" l'état du radiobutton avant le dit "click", il sera toujours "true." Il faut utiliser CheckedChanged en combinaison avec click ou tout mécanisme de variable supplémentaire.

    Mais je plussoie que pour faire ce genre de chose, ça correspond exactement au fonctionnement d'une checkbox, faite pour ça de façon "naturelle".

    Pour le reste, on sent un peu le manque de références sur le C#, parce qu'on n'écrit guère "a = true" on écrit "a" tout simplement. Idem pour "a = false" plutôt que "!a". Ça sent le passage depuis le basic.

    idem avec if (a) .... if(!a) plutôt que if(a) else, dans ce cas de figure ou a n'est pas modifié entre le if et le else.
    Et, au final, if(a) a = false else a = true, amène la simplification indiquée : a = !a.

    A+
    Claude

Discussions similaires

  1. Remplacer radio bouton par une image
    Par xave dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 11/03/2015, 11h24
  2. [UI Mobile] Activation d'un bouton par click sur une checkbox
    Par Malatok dans le forum jQuery
    Réponses: 3
    Dernier message: 06/05/2013, 17h37
  3. checked le radio bouton par défaut
    Par arno49 dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/09/2006, 19h23
  4. [JComboBox] Ouverture de déroulant par click sur un bouton
    Par oursblanc dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 06/02/2006, 14h16
  5. faire disparaitre du texte par rapport à radio bouton
    Par allowen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/10/2005, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo