List<CheckBox> mesCasesCochees = tabControl1.TabPages[0].Controls.OfType<CheckBox>().Where(c => c.Checked && c.Tag != null).OrderBy(c => c.TabIndex).ToList<CheckBox>(); //j'utilise plus de fonctions de Linq (tu avais déjà mis OfType et OrderBy): //Where(c => c.Checked && c.Tag != null): plus besoin de tester ces paramètres c'est déjà filtré come il faut //.ToList<CheckBox>(): caste la collection en List et les élements en CheckBox, donc ensuite il n'y a plus à s'en soucier. if (mesCasesCochees.Count == 0) return;//s'il n'y a rien dans la liste on sort de cette méthode StringBuilder str = new StringBuilder("CommandButton Command_"); str.AppendLine(comboBox13.Text);//j'initie le stringbuilder avec la première ligne //ensuite dans ton foreach tu testes à chaque boucle tous tes checksbox, //il est donc logique qu'il te multiplie les lignes, il ne faut tester uniquement le checkbox de l'itération en cours: foreach (CheckBox c in mesCasesCochees) switch (c.Name)//switch est une sorte de if elseif en cascade, là je vais prévoir tous les cas possibles { case "checkBox1": str.AppendLine(string.Format(" {0}={1}", c.Tag, comboBox1.Text));//appendline ajoute une ligne avec /r/n à la fin //string.Format retourne un string composé par du texte fixe et des arguments, les positions des arguments sont spécifiées par des index entre accolades break;//on sort du switch case "checkBox2": str.AppendLine(string.Format(" {0}={1}", c.Tag, comboBox2.Text)); break; case "checkBox3": str.AppendLine(string.Format(" {0}={1}", c.Tag, comboBox3.Text)); break; default://autres cas non prévus throw new Exception("Erreur de CheckBox");//génère une exception //pas de break, car avec throw on sort forcément de la méthode } str.Append("End"); label1.Text = str.ToString();//j'envoie le string construit dans le textbox
List<CheckBox> mesCasesCochees = tabControl1.TabPages[0].Controls.OfType<CheckBox>().Where(c => c.Checked && c.Tag != null).OrderBy(c => c.TabIndex).ToList<CheckBox>(); if (mesCasesCochees.Count == 0) return;//s'il n'y a rien dans la liste on sort de cette méthode StringBuilder str = new StringBuilder("CommandButton Command_"); str.AppendLine(comboBox13.Text); foreach (CheckBox c in mesCasesCochees) { str.Append(string.Format(" {0}=", c.Tag));//cette partie est commune, donc pas la peine de l'écrire 3 fois.... switch (c.Name) { case "checkBox1": str.AppendLine(comboBox1.Text);//on finalise en fonction de la case cochée break; case "checkBox2": str.AppendLine(comboBox2.Text); break; case "checkBox3": str.AppendLine(comboBox3.Text); break; default://autres cas non prévus throw new Exception("Erreur de CheckBox");//génère une exception } } str.Append("End"); label1.Text = str.ToString();
string chemin = string.Format("{0}\\test.txt",Environment.GetFolderPath(Environment.SpecialFolder.Desktop)); System.IO.File.WriteAllText(chemin, str.ToString());
if (mesCasesCochees.Count == 0) { label1.Text = string.Empty; return;//s'il n'y a rien dans la liste on sort de cette méthode }
if (radioButton1.Checked) str.AppendLine("YES"); else str.AppendLine("NO");
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSystem.IO.File.WriteAllText(@"C:\Users\%Username%\Desktop\Test.txt", Label1.Text);
28 janv. 2014 à 21:40