Appeler des textbox grace à une variable

Résolu
cs_Neotaxi Messages postés 21 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 4 mars 2012 - 5 mars 2009 à 11:20
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013 - 5 mars 2009 à 14:55
Bonjour a tous,
Je bute sur un petit probleme.
J'ai plusieurs textbox et je voudrais qu'en fonction d'une variable le programme choisise l'une ou l'autre des textbox.
ex:
Dim i as integer
i = varX
textbox+cstr(i).backcolor = color.black

C'est cette ligne que je n'arrive pas a faire marcher, j'ai tout essayer mais rien à faire. VB veux pas mettre ensemble textbox et i.
Merci de votre aide,
Neotaxi, noobs en puissance

4 réponses

Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
5 mars 2009 à 11:25
Je dirais que tu ne peux pas appeler un objet textbox par un nom composé de variables.

essaie plutôt:

Dim i as integer
i = varX

 Select Case i
            Case 1
               textbox1.backcolor = color.black
            Case 2
               textbox2.backcolor = color.black
            Case 3
                textbox3.backcolor = color.black
            Case 4
              textbox4.backcolor = color.black
         
            Case Else
                Resume

End Select

bon courage :)
3
cs_Neotaxi Messages postés 21 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 4 mars 2012
5 mars 2009 à 13:03
Merci beaucoup ca marche!
Encore quelques truc a chercher sur internet et ca devrait etre fini. 
Encore merci
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
5 mars 2009 à 13:42
Bonjour, Billybobbonnet,

Ainsi donc, avec ce que tu as proposé, tu naurais 100 clauses case pour 100 textboxes !...

Je ne suis pas VB.Netiste du tout, mais sais que la collection Controls existe sous VB.Net et qu'elle te permet de répondre plus parfaitement à la question posée (bien qu'il y ait encore mieux à faire en créant un pseudo groupe de contrôles indexés)

Je te propose donc de t'intéresser à la collection Controls et de faire une meilleure proposition de solution.
Je te laisse faire...
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
5 mars 2009 à 14:55
Pas évident à trouver, à mon piètre niveau! Merci pour le tuyau jmf0 :)

 Function change_Color(ByVal i As Integer, ByVal form As System.Windows.Forms.Form)
        Dim c As Control
        For Each c In form.Controls
            If (TypeOf (c) Is TextBox) Then
                If c.Name.ToString = "TextBox" & i Then
                    c.BackColor = Color.Chocolate
                End If
            End If
        Next
    End Function
0
Rejoignez-nous