Réinitialiser complètement une application Windows

jeffwow Messages postés 140 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 5 septembre 2014 - 5 déc. 2002 à 00:05
OrdioVince Messages postés 1 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 12 mars 2009 - 12 mars 2009 à 17:41
Ma Form comprend 84 TextBox ( un petit jeu de MasterMind ). Je souhaite pouvoir réinitialiser tous ces TextBox rapidement si le joueur veut recommencer. Y a t il un moyen plus rapide que de réinitialiser chaque textbox ( TextBox1.Clear() ).

De plus j'aimerais savoir s'il est possible d'inclure des TextBox dans un tableau de la facon suivante :

TextBox[i].Text

Je sais que ça ne fonctionne pas de la façon dont je viens de l'écrire, mais j'aimerais savoir si quelque chose de similaire existe.

Merci

Jeff

4 réponses

Bruto Messages postés 214 Date d'inscription jeudi 21 mars 2002 Statut Membre Dernière intervention 14 mai 2004
5 déc. 2002 à 13:25
Tu devrais faire un truc comme :

pour chaque textbox de la form x faire textbox.clear()

maintenant je débute en C# donc je ne sais pas préciser pour l'instant.

cela doit ressembler à ceci :
for each object is TextBox do
object.Text := '';

Je me trompe peut-être mais en vb on savait le faire mais je n'ai plus vb pour pouvoir tester.

;) Bruto --- Le p'tit belge --- pour vous servir
0
jayrock Messages postés 24 Date d'inscription vendredi 10 mai 2002 Statut Membre Dernière intervention 13 avril 2003
21 déc. 2002 à 18:14
for(int i=0;i<this.Controls.Count;++i)
{
if(this.Controls[i] is System.Windows.Form.Textbox) this.Controls[i].Text="";
}

Et c'est tout. Tu peux faire ça pour tout type de control sur ton formulaire !

jayrock
0
alcoveforlove Messages postés 12 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 18 novembre 2011 1
21 sept. 2005 à 14:10
pour vider un lot de textboxes de manière simple et efficace dans une form :


// Controls est la collection des controls du form


foreach(Control ctl in this.Controls)
{


if(ctl is TextBox) { ctl.Text = ""; }


}

j'ajoute une autre manière (tordue celle-là mais qui a le mérite d'apprendre quelque chose)


IEnumerable enumerable = this.Controls as IEnumerable;


IEnumerator enumerator = enumerable.GetEnumerator();


while(enumerator.MoveNext())


{


Control ctl = (Control) enumerator.Current;


if(ctl is TextBox) { ctl.Text = ""; }


}
0
OrdioVince Messages postés 1 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 17:41
J'ai eu un souci que j'ai réussi à résoudre donc je vous en fait profiter :

private void Reset(Control C)
{
foreach (Control ctl in C.Controls)
{
if (ctl is TextBox)
ctl.Text = "";
Reset(ctl);
}
}

avec cette fonction récursive, il suffit de faire :

Reser (this);

et tout le form sera réinitialisé, même si vous utilisez plusieurs conteneurs ...
0
Rejoignez-nous