Concatenation label + indice [Résolu]

Messages postés
3
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
1 juin 2010
- - Dernière réponse : km3l3on
Messages postés
3
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
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 

4 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
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 131 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
Statut
Membre
Dernière intervention
8 mars 2017
5
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
Statut
Membre
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
Statut
Membre
Dernière intervention
8 mars 2017
5
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