Boucle C# [Résolu]

J00k4 - 10 févr. 2017 à 13:23 - Dernière réponse : Whismeril 10603 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 décembre 2017 Dernière intervention
- 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;

}
Afficher la suite 

5 réponses

Répondre au sujet
Whismeril 10603 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 décembre 2017 Dernière intervention - 10 févr. 2017 à 13:39
0
Utile
Bonjour

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

Au final tu veux en faire quoi de ton tableau?
Commenter la réponse de Whismeril
0
Utile
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
Commenter la réponse de J00k4
Whismeril 10603 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 décembre 2017 Dernière intervention - 10 févr. 2017 à 14:14
0
Utile
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.
Commenter la réponse de Whismeril
0
Utile
je vous remercie beaucoup de votre aide !
Commenter la réponse de J00k4
Whismeril 10603 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 décembre 2017 Dernière intervention - 10 févr. 2017 à 14:33
0
Utile
de rien
Commenter la réponse de Whismeril

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.