Concaténation et nom d'objet [Résolu]

Floooo49 15 Messages postés samedi 28 février 2009Date d'inscription 30 mars 2010 Dernière intervention - 1 mars 2009 à 16:33 - Dernière réponse : Floooo49 15 Messages postés samedi 28 février 2009Date d'inscription 30 mars 2010 Dernière intervention
- 1 mars 2009 à 19:27
Bonjour à tous et à toutes, cela fait maintenant une heure que je recherche la réponse à ma question sans succès :

Est-il possible de réaliser une concaténation de ce type  :

            L = 1;
            for (C = 1; C < 13; C++)
            {
                radioButton+C+.Text = Tproposition[L, C];
            }

J'espère que vous pourrez m'aider, merci d'avance.
Afficher la suite 

4 réponses

Répondre au sujet
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 1 mars 2009 à 17:57
+3
Utile
Salut,

Les controles indexés  à la VB6 ne sont plus utilisés,
il faut utilser soit une boucle sur les controles contenu dans le formulaire
attention si il y a des niveaux de controles (groupbox, panel , ....)

 foreach (Control ctl in this.Controls)
            {
                if (ctl is Button && (ctl as Button).Name.StartsWith("button"))
                {
                    ctl.BackColor = Color.Aqua;
                    ctl.Text = (ctl as Button).Name.Remove(0,"button".Length);
                }
            }

C'est un exemple

Ou passer par ((this.Controls.Find("button1",true))[0] as Button).Text = "bonjour"; // qui gere les enfants au passage
attention j'ai pas géré la nullité ou les erreurs de cast.

Autre  méthode que je vois est de passer par la reflexion qui est lent aussi.

Il reste une solution c'est de mettre tes controles dans une collection et travailler avec cette derniere.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 1 mars 2009 à 18:46
+3
Utile
Et pour completer la réponse, dans le cas présent ça sera par exemple

            L = 1;
            for (C = 1; C < 13; C++)
            {
                ((this.Controls.Find("radioButton" + C,true))[0] as RadioButton).Text = Tproposition[L, C];
            }

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_casy
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 1 mars 2009 à 18:48
0
Utile
Bien joué.

J'ai pas été plus loin apres avoir trouvé le find ;-)
Commenter la réponse de nhervagault
Floooo49 15 Messages postés samedi 28 février 2009Date d'inscription 30 mars 2010 Dernière intervention - 1 mars 2009 à 19:27
0
Utile
Merci beaucoup a vous deux ca marche parfaitement!
Commenter la réponse de Floooo49

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.