Boucle C#

Résolu
J00k4 - 10 févr. 2017 à 13:23
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 10 févr. 2017 à 14:33
Bonjour,
J'aurais une question pour mon code j'ai fais un maze et j'aimerais savoir si il a possibilité de mettre des Label déjà fait dans un tableau de label avec leur même nom et leurs possibilité
for (int i =0;i <tLabel.Length; i++)
{
// mettre une boucle pour faire se qu'il a endessous

}
tLabel[0] = label2; tLabel[1] = label3; tLabel[3] = label5; tLabel[2] = label4; tLabel[4] = label6; tLabel[5] = label7; tLabel[6] = label8; tLabel[7] = label9; tLabel[8] = label10;
tLabel[9] = label11; tLabel[10] = label12; tLabel[11] = label13; tLabel[12] = label14; tLabel[13] = label15; tLabel[14] = label16; tLabel[15] = label17; tLabel[16] = label18; tLabel[17] = label19; tLabel[18] = label20;
tLabel[19] = label21; tLabel[20] = label22; tLabel[21] = label23; tLabel[22] = label24; tLabel[23] = label25; tLabel[24] = label26; tLabel[25] = label27; tLabel[26] = label28; tLabel[27] = label29; tLabel[28] = label30;
tLabel[30] = label31; tLabel[31] = label32; tLabel[32] = label33; tLabel[33] = label34; tLabel[34] = label35; tLabel[35] = label36; tLabel[36] = label37; tLabel[37] = label38; tLabel[38] = label39; tLabel[39] = label40;
tLabel[40] = label41; tLabel[41] = label42; tLabel[42] = label43; tLabel[43] = label44; tLabel[44] = label45; tLabel[45] = label46; tLabel[46] = label47; tLabel[47] = label48; tLabel[48] = label49; tLabel[49] = label50;
tLabel[50] = label51; tLabel[51] = label52; tLabel[52] = label53; tLabel[53] = label54; tLabel[54] = label55; tLabel[55] = label56; tLabel[56] = label57; tLabel[57] = label58; tLabel[58] = label59;tLabel[29] = label1;

}

5 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
10 févr. 2017 à 13:39
Bonjour

oui c'est possible, mais p'tet que ça n'est pas utile.

Au final tu veux en faire quoi de ton tableau?
0
Bonjour
Je n'en vois pas trop l'utilité mais c'est plus pour ma curiosité personnel et pour le future ne plus refaire se que j'ai fait avant
et dans mon cas j'ai mis mes label dans mon jeux dans un tableau c'est pour changer la couleur ou la taille mais j'aimerais savoir comment on fais pour les mettre non manuellement si vous voyez se que je veux dire
merci de dire comment faire
J00k4
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
10 févr. 2017 à 14:14
Ok je vais te montrer, mais je confirme que ça ne sert à rien: les contrôles sont déjà dans des collections...

Pour mon exemple, il y a 7 labels (j'avais pas envie d'en créer 50).
            Label[] lesLabels = new Label[7];

            int i = 0;
            foreach(Label l in this.Controls.OfType<Label>().OrderBy(x => x.Name))//donc la collection Controls contient tous les controles, OffTyp permet d'extraire les labels
            {
                lesLabels[i++] = l; //xn--l-sfa je me contente de les rentrer dans l'ordre alphabétique de leur nom
            }

            //comme tu exemple mets le 2 dans la cellule 0
            foreach (Label l in this.Controls.OfType<Label>().Except(new[] { label1 }))//je boucle sur tous sauf label1
            {
                int numero = Convert.ToInt32(l.Name.Replace("label", ""));//je supprime label du nom et convertit le nombre qui reste.
                lesLabels[numero - 2] = l;
            }
            lesLabels[6] = label1;//pour mettre le premier en dernier....


Maintenant, je te le répète, c'est pas utile.
D'abord il faut nommer les contrôles de façon claire.
Une méthode largement répandue est:
  • 3 minuscules pour le type de control (label => lbl)
  • 1 ou plusieurs mots commençant par une majuscule qui décrivent l'utilité du contrôle.

Par exemple lblCouleurYeux, lblTaille, lblAge, tbxCouleurYeux, tbxTaille, tbxAge.
Là j'ai 6 contrôles, les labels décrivent ce qui est saisi dans les Textbox.

Tu peux donc mettre un mot commun dans tous ceux que tu veux modifier et là tu fais une requête Linq
 this.Controls.OfType<Label>().Where(x => x.Name.Contains("Trucmuche")


Tu peux aussi te servir de la propriété Tag, tu vas faire une requête sur tous les label dont le Tag est "Coucou".

Tu as directement une collection sur laquelle tu peux agir.
0
je vous remercie beaucoup de votre aide !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
10 févr. 2017 à 14:33
de rien
0
Rejoignez-nous