Avoir au moins 1 check box de coché pour activer un bouton [Résolu/Fermé]

Signaler
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
-
Whismeril
Messages postés
14266
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2020
-
Bonjour,
Je vous explique mon problème:

Je programme en c# Windows Form, et j'essaye de coder un quiz éducatif pour apprendre les notes sur une guitare. Dans mon quiz, l'utilisateur peut choisir sur quelle (s) corde(s) de la guitare il veut être questionné.

J'ai 5 check boxes, une pour chaque corde de la guitare. Je veux qu'un bouton s'active si l'utilisateur a choisi au moins 1 check box.

De plus, je veux que les questions de mon quiz soient seulement avec les cordes choisies.
J'ai déjà fait une switch qui donne une corde au hasard, mais je sais pas comment faire pour prendre au hasard seulement les cordes qui ont été choisies préalablement.

À part créer une switch pour chaque possibilité de combinaison de cordes, comment je peux faire ça?

Merci d'avance :)

4 réponses

Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
170
Salut,

Peux tu donner le code correspondant (selection au hasard) ?
Pour l activation ou non d un bouton, le plus simple sera de créer une méthode, par exemple "setActive" qui va verfier chaque check, et si 1 est true, activer le bouton (sinon desactiver). Ensuite il suffit d assigner ta méthode à l evenement click.

naga
cindylechat
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
1
J'ai fait un nombre random de 1 à 5, et selon le nombre généré, ça m'affiche une corde.




//Corde random
            switch (iCorde)
            {

case 1:
sCorde = "A";

break;

case 2:{
sCorde = "B";

break;

case 3:

sCorde = "D";

break;

case 4:
sCorde = "E";

break;

case 5:

sCorde = "G";

break;

}
Messages postés
14266
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2020
467
Bonjour pour ta sélection au hasard, pas besoin d'un switch, tu crées un tableau et le random te donne l'index de l'élément du tableau.


Par contre quand tu dit activer un bouton, c'est le rendre cliquable? Ou exécuter la méthode comme s'il avait été cliqué?
cindylechat
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
1
Le mettre enable, donc le rendre cliquable.

Donc au lieu d'une switch, je fais une boucle for?

Je ne m'y connais pas en boucle for...
Messages postés
14266
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2020
467
Pour ton tirage aléatoire

            string[] tableau = { "A", "B", "C", "D", "E" };
            Random rnd = new Random();
            int index = rnd.Next(5);

            string corde = tableau[index];


Pour tes checkbox, tu abonnes les événements de chacune à une seule et même méthode.
Dans cette méthode tu fais un OU
monBouton.Enabled = checkbox1.Value | checkbox2.Value etc...

Whismeril
Messages postés
14266
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2020
467
Par contre, le meilleur conseil que je puisse te donner, c'est de commencer par le début.

Les boucles, normalement, ça s'apprend avant même d'imaginer une interface graphique.

Ici, un bon cours.
Et même si tu passes 15 jours ou 3 semaines dessus, toutes les bases auront été vues.
cindylechat
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
1
Merci beaucoup pour ta réponse.

Es-tu capable de me dire comment faire pour que la corde aléatoire soit seulement entre les choix que l'utilisateur a faits plus tôt (checkbox) ?
Whismeril
Messages postés
14266
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2020
467
heu...
je ne suis pas sûr d'avoir compris ce que tu veux.
cindylechat
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
1
Au début, j'ai 5 checkboxes qui réprésentent chacune une corde.
Le nombre random doit être en fonction des checkboxes qui ont été cochées plus tôt.
Exemple:
L'utilisateur coche la case A et D.
Alors, la lettre random doit être soit A ou D. Comment je m'y prend ?

En espérant avoir été plus claire dans mes explications.
Messages postés
14266
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2020
467
Au lieu de faire un tableau de lettres, tu fais une liste de checkbox cochées, et du fait le random en fonction du nombre d'éléments dans la liste.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns