Switch case imbriqués [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
20 juin 2009
-
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
-
Bonjour à tous,

J'ai une forme avec plusieurs Groupbox contenant chacuns plusieurs boutons. Lorsque j'appui sur un bouton, je récupère le Tag du groupbox et du bouton lui-même pour traiter ensuite l'évènement dans un timer. Et c'est dans cette routine que j'ai un problème de switch-case imbriqué:
switch (TagGpb)
            {
                case 1: switch (TagButton)
                    {
                        case 1: ...; break;
                        case 2: ...;break;
                        case 3: break;
                        case 4: break;
                        case 5: break;
                        case 6: break;
                        case 7: break;
                        case 8: break;
                        case 9: break;
                        case 10: break;
                        case 11: break;
                        case 12: break;
                        case 13: break;
                        case 14: break;
                        case 15: break;
                        case 16: break;
                        case 17: break;
                        case 18: break;
                        case 19: break;
                        case 20: break;
                        case 21: break;
                        case 22: break;
                        case 23: break;
                        case 24: break;
                        default: break;
                    }
                   
                case 2: switch (TagButton)
                    {
                        case 1: break;
                        case 2: break;
                        case 3: break;
                        case 4: break;
                        case 5: break;
                        case 6: break;
                        case 7: break;
                        case 8: break;
                        case 9: break;
                        case 10: break;
                        case 11: break;
                        case 12: break;
                        default: break;
                    }.....

Le compilateur génère cette erreur:  "erreur CS0163: Le contrôle ne peut pas passer d'une étiquette case ('case 1:') à une autre"

Est-ce que ce type d'erreur est déjà arrivé à qqun et si c'est le cas comment pourrais-je la contourner?

Merci.
A voir également:

2 réponses

Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
Ce que tu écris n'est pas correct, ça c'est mieux si tu tiens absolument à imbriquer les switch

switch(TagGpb)
{
   case 1:
   {
      switch(TagButton)
      {
         case 1:...;break;
         case 2:...;break;
      }
      break;
   }
   case 2:
    {
      switch(TagButton)
      {
         case 1:...;break;
         case 2:...;break;
      }
      break;
    }
}
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

sincérement je pense que ce serait plus propre et plus lisible d'appeler une méthode dans chaque case du prermier niveau

switch (TagGpb)
            {
                case 1: "yourStuff"
                    {
                        yourMethodforYourStuff()           
                        default: break;
                    }
                   
                case 2: "someOtherStuff"
                    {
                     
yourMethodforsomeOtherStuff
()   

                        default: break;
                    }.....

ou même

switch (TagGpb)
            {
                case 1: "yourStuff"
                    {
                        yourMethod("yourStuff")           
                        default: break;
                    }
                   
                case 2: "someOtherStuff"
                    {
                     
yourMethod("
someOtherStuff
")  

...