Bonjour! Je viens quérir votre aide car j'ai un curieux souci avec une instruction "Select case" que j'utilise régulièrement.

Voila, j'ai développé un mémori pour mon fils de 4 ans (pour l'occuper pendant le confinement). Je m'arrache depuis deux jours les cheveux sur un improbable problème. J'ai inséré un select case, mais le programme ne lance aucune instruction dans aucun cas.

Il a 4 ans, il adore Sam Sam et la Patpatrouille, je lui ai fait plaisir en créant un jeu avec ses héros préférés (Chase, Stella...). Au début, je lui avais mis 9 personnages fixes. Et puis, comme rien n'est trop beau pour lui, je lui ai aussi permis de faire une partie "personnalisée" dans laquelle il choisit lui même des 9 héros sur une liste de 65 (ce que j'appelle sa "liste personnalisée").

J'ai 18 boutons pour mes 18 cartes. Le programme génère un ordre aléatoire pour mes 9 paires de cartes et stocke donc l'ordre de sortie des cartes dans une list (of strings) appelée ListeNoms.
Ensuite, il associe à chaque bouton/carte le héros qui lui correspond (en fonction du tirage qui a été fait (bouton 1: 1ere carte tirée, bouton 2: deuxième carte tirée, etc.) bref.

Pour ne pas me retrouver avec un code à rallonge, j'ai créé une liste avec ses neuf héros choisis. En cas de partie personnalisée, le programme fait un tirage normal et remplace juste l'image de Chase par l'image de tel autre héros.

Mon problème est tout bête: quel que soit le "Personnage" définit comme "String" (car je stocke son nom), la partie Select Case ne semble reconnaitre aucun cas de figure. J'ai testé en mettant des points d'arrêt un peu partout pour vérifier telle ou telle variable (avant la partie select case, dans la partie select case, après...). tout ce qui est avant s'execute, tout ce qui est après s'execute, mais ce qui est dedans... rien du tout

toutes les variables renvoient toujours quelquechose: j'ai 9 héros dans ma ListeHéros (qui stocke les images des héros), le programme reconnait bien si c'est une partie personnalisée ou pas, j'ai bien 18 noms dans ma liste de noms (100% identiques à ceux que j'utilise dans mon select case), et pourtant... Walou...

Voici mon code

Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Sub AffichageBoutons() 
 
        Dim ListePersonnalisée = 0
 
        If Me.CheckBox5.Checked = True And ListeHéros.Count = 9 Then ListePersonnalisée = 1 
 
        For i = 1 To 18
 
            Personnage = ListeNoms(i - 1)
 
            Select Case Personnage
 
                Case "Chase"
                    If ListePersonnalisée = 1 Then
                        DirectCast(Me.Controls("Button" & i), Button).BackgroundImage = ListeHéros(0)
                    Else
                        DirectCast(Me.Controls("Button" & i), Button).BackgroundImage = WindowsApplication1.My.Resources.Chase
                    End If
 
                Case "Stella"
                    If ListePersonnalisée = 1 Then
                        DirectCast(Me.Controls("Button" & i), Button).BackgroundImage = ListeHéros(1)
                    Else
                        DirectCast(Me.Controls("Button" & i), Button).BackgroundImage = WindowsApplication1.My.Resources.Stella
                    End If
                    End If
 
                Case "Samsam"
                    If ListePersonnalisée = 1 Then
                        DirectCast(Me.Controls("Button" & i), Button).BackgroundImage = ListeHéros(2)
                    Else
                        DirectCast(Me.Controls("Button" & i), Button).BackgroundImage = WindowsApplication1.My.Resources.SamSam
                    End If
 
                '............. etc ..................
 
            End Select
 
        Next
 
    End Sub

En fait, le code se lit quand même car quand je met un Case Else, il "lit" ce qu'il y a dedans.

Je n'y comprends plus rien. Help! j'utilise cette fonction très régulièrement, ça ne m'est jamais arrivé. Qu'est-ce qui peut bloquer?
J'ai joint 2 screenshots avec deux points d'arret, pardonnez moi la familiarité, mais là, pour le coup, je me sens "teubé" Ici, un exemple avec "Chase". Il ne m'exécute absolument pas ce qui est dans le Cas Chase juste en dessous...
Nom : 01.jpg
Affichages : 405
Taille : 35,5 KoNom : 02.jpg
Affichages : 374
Taille : 28,4 Ko


Merci de votre aide. Je sèche!

Bonne journée!