Concatenation label + indice [Résolu]

Messages postés
3
Date d'inscription
samedi 12 septembre 2009
Dernière intervention
1 juin 2010
- - Dernière réponse : km3l3on
Messages postés
3
Date d'inscription
samedi 12 septembre 2009
Dernière intervention
1 juin 2010
- 1 juin 2010 à 14:51
Bonjour a tous, je me retrouve a faire un programme dont le visuel contient énormément de labels.
J'aimerai inclure une seule et même action dans une boucle parcourant plusieurs labels.
Voici un exemple que j'ai trouvé sur le net mais qui ne marche pas:

Mes labels s'appellent lbl1, lbl2....et j'en ai 31.

for (int i = 1; i < 31; i++)
              {
                Controls["lbl" + i.ToString()].Text = "toto";  
              }


L'erreur affichée me dit que "lbl" + i.ToString() doit etre de type entier et non pas chaine.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
samedi 12 septembre 2009
Dernière intervention
1 juin 2010
3
Merci
C'était en effet quelque chose dans ce genre. Je poste la solution
for (int i = 1; i < 31; i++) // parcoure les labels dont les indices sont passés en parametres
{
    foreach (Control c in this.Controls) 
    {
      if (c.Name == "lbl" + i) 
      {
          c.Text = "toto"; 
      }
    }
}   

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de km3l3on
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
0
Merci
Bonjour,
Controls attend un nombre et pas une string:
Controls[i] corrigera ton problème.


louis
Commenter la réponse de cs_louis14
Messages postés
3
Date d'inscription
samedi 12 septembre 2009
Dernière intervention
1 juin 2010
0
Merci
Problème résolu, merci Louis mais ce n'est pas ça que j'ai du faire.
Commenter la réponse de km3l3on
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
0
Merci
Je crois que tu voulais mettre le nom du Controle :
Control[i].name = "lbl"+i.ToString();
Control[i].text = "toto";

louis
Commenter la réponse de cs_louis14

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.