Indexer les TextBox [Résolu]

Signaler
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
-
cs_bellak
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011
-
Salut tt le monde ;
j'ai un petit soucis , mon form contient plusieurs TextBox et un bouton , et je veux que si je clique sur le bouton tout les TextBox prennet la meme valeur . ma question : y a-t-il un moyen pour indexer les TextBox et faire une boucle sur tout les TextBox ( for ( int index 0 ; index < ?? ; index++ ) txtbox(index).Text "??"; )

merci d'avance .

6 réponses

Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

Salut tt le monde ;
probleme resolu :
public

List<
TextBox> MesTxtBox =
new
List<
TextBox>();
MesTxtBox.Add(this.txt1) ;  //pour avoir txt1, il suffit de faire MesTxtBox[0]

MesTxtBox.Add(this.txt2) ;  //pour avoir txt2, il suffit de faire MesTxtBox[1]

Merci a tous
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
oui...

for (int i=0; i<this.Controls.Count; i++) {
   if (this.Controls[i] is TextBox) {
      ((TextBox)this.Controls[i]).Text = "blabla";
   }
}

où this est le formulaire courant

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

Salut "sebmafate" ;


c'etait qu'un exemple , mon appli contient 2 form , le 1er (Main) contient plusieurs TextBox avec des boutons correspondant , le 2eme (User) contient 1 TextBox et 1 bouton , et je veux que si je clique sur btn1 de (Main) --> index = 1; puis sur btn de (User) , le txtbox(index) de (Main) prend la valeur de txtbox de (User) .
si c'est pas clair je peux reexpliquer , re merci .
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
l'idéal pour ce genre de chose, c'est d'utiliser la propriété Tag des controles... ensuite tu parcoures la collection de controles pour mettre à jour ce que tu veux

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

pardon "seb" , mais je suis un debutant en dev (si tu ve dire "0") , peux-tu m'expliquer la propriete Tag et si c'est possible un exemple .

merci .
Messages postés
136
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
5 mai 2011

pour qu'ils n'ont pas compris je reexplique , supposant qu'on a 2 form , le 1er (frmMAIN) contient 2 TextBox (txt1,txt2) et 2 boutons (btn1,btn2) . le 2eme (frmUSER) contient 1 TextBox (txt3) et 1 bouton (btn3) . la solution  est :

Dans frmMAIN :
code :int idx;
private void btn1_Click(object sender, EventArgs e)
{
idx = 1;
frmUSER frmUSER = new frmUSER ();
frmUSER.Show()
}
private void btn2_Click(object sender, EventArgs e)
{
idx = 2;
frmUSER frmUSER = new frmUSER ();
frmUSER.Show()
}

<!-- END TEMPLATE: bbcode_code -->puis dans frmUSER :
<!-- BEGIN TEMPLATE: bbcode_code -->

code :
private void btn3_Click(object sender, EventArgs e)
{
if (frmMAIN.idx == 1)
frmMAIN.txt1.Text = txt3.Text;
else if (frmMAIN.idx == 2)
frmMAIN.txt2.Text = txt3.Text;
}

<!-- END TEMPLATE: bbcode_code -->ce que je veux ,si c'est possible, c'est d'indexer les TextBox :
txt1 ==> txt(1)
txt2 ==> txt(2)
<!-- BEGIN TEMPLATE: bbcode_code -->

code :
int idx;
private void btn1_Click(object sender, EventArgs e)
{
idx = 1;
frmUSER frmUSER = new frmUSER ();
frmUSER.Show()
}
private void btn2_Click(object sender, EventArgs e)
{
idx = 2;
frmUSER frmUSER = new frmUSER ();
frmUSER.Show()
}

<!-- END TEMPLATE: bbcode_code -->puis :
<!-- BEGIN TEMPLATE: bbcode_code -->

code :
private void btn3_Click(object sender, EventArgs e)
{

frmMAIN.txt(idx).Text = txt3.Text;

}