Bonjour,

J'ai plusieurs objets sur la forme (des TextBox), avec des noms comme TB_Led_1, TB_Led_2, TB_Led_3, ... TB_Led_12.

Je veux faire clignoter certains de ces TextBoxes, selon que l'utilisateur ait cliqué sur des boutons (chaque TextBox est associé à un bouton).
J'ai aussi un Timer, et je voudrais faire clignoter certaines des TextBox, selon que les boutons associés ont été cliqué ou pas.

Donc, plutôt que de faire 12 fois le même code, je voudrais faire quelque chose de plus propre.

J'ai donc essayé avec le CallByName :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
        For i As Integer = 1 To 12
            If Bouton(i) Then
                If CallByName("TB_Led_" & i.ToString, "BackColor", CallType.Get) = Color.White Then
                    CallByName("TB_Led_" & i.ToString, "BackColor", CallType.Set) = Color.Orange
                Else
                    CallByName("TB_Led_" & i.ToString, "BackColor", CallType.Set) = Color.White
                End If
            End If
        Next
Mais ça ne fonctionne pas (normal, sinon je ne serai pas là).
J'ai le message d'erreur suivant :
{"Le membre public 'BackColor' du type 'String' est introuvable."}

Pourtant, le site Microsoft m'indique :
Le CallByName fonction vous permet d’utiliser une chaîne pour spécifier une propriété ou méthode en cours d’exécution.
Or le BackColor est bien une propriété de l'objet TextBox TB_Led_1 (et de ses petits frères).

Merci d'avance pour votre aide