Avoir au moins 1 check box de coché pour activer un bouton

Résolu/Fermé
cindylechat Messages postés 24 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 21 décembre 2016 - 14 déc. 2016 à 15:28
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 14 déc. 2016 à 20:50
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 :)
A voir également:

4 réponses

nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
14 déc. 2016 à 15:47
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
0
cindylechat Messages postés 24 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 21 décembre 2016 6
Modifié par cindylechat le 14/12/2016 à 15:59
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;

}
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
14 déc. 2016 à 16:47
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é?
0
cindylechat Messages postés 24 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 21 décembre 2016 6
Modifié par cindylechat le 14/12/2016 à 17:09
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...
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
14 déc. 2016 à 18:46
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...

0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
14 déc. 2016 à 18:53
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.
0
cindylechat Messages postés 24 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 21 décembre 2016 6
Modifié par cindylechat le 14/12/2016 à 20:01
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) ?
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
14 déc. 2016 à 20:06
heu...
je ne suis pas sûr d'avoir compris ce que tu veux.
0
cindylechat Messages postés 24 Date d'inscription mercredi 14 décembre 2016 Statut Membre Dernière intervention 21 décembre 2016 6
14 déc. 2016 à 20:46
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.
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
Modifié par Whismeril le 14/12/2016 à 20:50
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
0