Utiliser une variable string dans un nom d'objet

cs_Flo1950 Messages postés 3 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 11 novembre 2011 - 16 juin 2011 à 18:16
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 16 juin 2011 à 21:31
Bonjour!

Je débute en VB et ai déja programmé dans d'autre langages.
J'aimerais accéder un objet (ovalshape1 ici) en stockant le nom de l'objet dans une variable string. Ca n'a pas l'air de fonctionner en VB. Comment puis je faire alors pour parcourir et modifier les propriétés de 10 ovalshape par exemple (de ovalshape1 à ovalshape10).

 Dim n As Integer

        Dim Nom_Shape As String
        n = 1
        Nom_Shape = "OvalShape" & "n"
        Nom_Shape.BackColor = Color.CadetBlue 'J'aimerais que cette ligne
   '     OvalShape1.BackColor = Color.CadetBlue 'soit équivalente à celle là


Je sais pas si je suis clair, en tout cas merci de votre éventuel aide!

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 juin 2011 à 20:07
Salut

Tu as posté ta question en VB.Net
Tu confirmes ?
Sinon, précise ton environnement de travail car les techniques divergent beaucoup entre VBA, VB6 et VB.Net

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 juin 2011 à 20:08
Salut

For Each C As Control In me
    If  TypeOf (C) Is OvalShape Then
      DirectCast(C, 0valshape).backcolor = 
    End If

Next


le code va modifier le baclcolor de tous les ovalshapes de ta form


à propos où se trouve le control dans le toolbox
je ne le trouve pas
0
cs_Flo1950 Messages postés 3 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 11 novembre 2011
16 juin 2011 à 20:23
Alors oui j'ai surement pas encore capté toute les différences entre les langages. Le je suis sur VB Express 10.

Le contrôle est dans Visual Basic Power Packs pour moi... Mais faut pas m'en demander plus

J'ai tester le code il bloque sur le Me:

Erreur 2 L'expression est du type 'WindowsApplication1.Form1', qui n'est pas un type de collection. C:\Users\Florian\documents\visual studio 2010\Projects\Projet Test\Projet Test\Form1.vb 156 34 Projet Test


Merci!
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 juin 2011 à 21:31
j'ai oublié d'ajouter .controls

For Each C As Control In Me.Controls
    If  TypeOf (C) Is OvalShape Then
      DirectCast(C, 0valshape).backcolor = 
    End If

Next
0
Rejoignez-nous