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

Signaler
Messages postés
15
Date d'inscription
samedi 28 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
-
Messages postés
15
Date d'inscription
samedi 28 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
-
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.

4 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
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.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
27
Bien joué.

J'ai pas été plus loin apres avoir trouvé le find ;-)
Messages postés
15
Date d'inscription
samedi 28 février 2009
Statut
Membre
Dernière intervention
30 mars 2010

Merci beaucoup a vous deux ca marche parfaitement!