Concatenation label + indice [Résolu]

km3l3on 3 Messages postés samedi 12 septembre 2009Date d'inscription 1 juin 2010 Dernière intervention - 31 mai 2010 à 20:07 - Dernière réponse : km3l3on 3 Messages postés samedi 12 septembre 2009Date d'inscription 1 juin 2010 Dernière intervention
- 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
km3l3on 3 Messages postés samedi 12 septembre 2009Date d'inscription 1 juin 2010 Dernière intervention - 1 juin 2010 à 14:51
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"; 
      }
    }
}   

Merci km3l3on 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de km3l3on
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 1 juin 2010 à 10:14
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
km3l3on 3 Messages postés samedi 12 septembre 2009Date d'inscription 1 juin 2010 Dernière intervention - 1 juin 2010 à 12:45
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
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 1 juin 2010 à 14:05
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.