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

Floooo49
Messages postés
15
Date d'inscription
samedi 28 février 2009
Dernière intervention
30 mars 2010
- 1 mars 2009 à 16:33 - Dernière réponse : Floooo49
Messages postés
15
Date d'inscription
samedi 28 février 2009
Dernière intervention
30 mars 2010
- 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 

Votre réponse

4 réponses

Meilleure réponse
nhervagault
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 1 mars 2009 à 17:57
3
Merci
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.

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de nhervagault
Meilleure réponse
cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
- 1 mars 2009 à 18:46
3
Merci
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

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_casy
nhervagault
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 1 mars 2009 à 18:48
0
Merci
Bien joué.

J'ai pas été plus loin apres avoir trouvé le find ;-)
Commenter la réponse de nhervagault
Floooo49
Messages postés
15
Date d'inscription
samedi 28 février 2009
Dernière intervention
30 mars 2010
- 1 mars 2009 à 19:27
0
Merci
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.