Salut tout le monde,
J'ai une question un peu étrange puisque je suis débutant en programmation:
J'ai un ensemble de textbox, je veux les parcourir avec une boucle for de tel sorte j'aurais textbox[i].text
est c'est possible en c#
merci.
Salut tout le monde,
J'ai une question un peu étrange puisque je suis débutant en programmation:
J'ai un ensemble de textbox, je veux les parcourir avec une boucle for de tel sorte j'aurais textbox[i].text
est c'est possible en c#
merci.
Bonjour,
si tu les mets dans un tableau ou dans une liste oui tu peux faire ça.
Mais pourquoi tu veux faire ça ?
Bonjour,
Tu peux parcourir tous les control d'un formulaire en faisant ceci.
Attention c ou this.Controls[i] peut etre un panel ou un autre control qui peut contenir des controls, donc dans ces cas this.Controls[i].Controls[0] peut être valide et ainsi de suite jusqu'a la profondeur maxi d'imbrication de tes composants.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 foreach (Control c in this.Controls) { if (c is TextBox) { MessageBox.Show(((TextBox)c).Text); } } ou for (int i = 0; i < this.Controls.Count; i++) { if (this.Controls[i] is TextBox) { MessageBox.Show(((TextBox)this.Controls[i]).Text); } }
Tu peux tester chaque control en faisait
if (c is Panel), if (c is TextBox) ou tout ce que tu souhaites tester.
Cordialement
Hello,
Pour compléter la réponse de Lharrun qui est tout a fait correct, tu peux également ajouter un Tag commun pour créer des groupes de textbox.
Par exemple, tu as 5 textbox utiles pour faire une action A et 5 autres pour faire une action B.
Les 5 textbox auront "A" comme valeur pour la propriété Tag. Les 5 autres textbox auront un Tag "B".
De ce faite, tu peux faire du trie dans ta collection de tes controls de type Textbox.
Exemple:
MRA.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 foreach (Control c in this.Controls) { if (c is TextBox && c.tag == "A") // On traite les textbox de groupe A { MessageBox.Show((TextBox)c.Text + ": Groupe de textbox A"); } else if (c is TextBox && c.tag == "B" // On traite les textbox de groupe A { MessageBox.Show((TextBox)c.Text + ": Groupe de textbox B"); } }
Tu peux faire de la récursivité pour parcourir en profondeur tous les sous controls d'un control pour récupérer les TextBox. C'est assez simple à implémenterune seule méthode ...
Partager