salut comment puise-je vider des textbox dans la form avec une boucle, et les textbox qui sont remplir on prend leur nom et Merci
Version imprimable
salut comment puise-je vider des textbox dans la form avec une boucle, et les textbox qui sont remplir on prend leur nom et Merci
Tu parcours les contrôles du container (propriétés Controls). Le container représente la Form où sont tes TextBox, éventuellement un GroupBox, un Panel, ... suivant comment est ton écran.
Si tes TextBox peuvent être dans plusieurs containers, tu parcours les contrôles de chaque container et si le contrôle est un TextBox tu fais ton traitement.
Si tu n'as pas besoin d'un traitement dynamique, tu peux également créer une liste de TextBox en dur et traiter cette liste par la suite.
voici que je j'ai fait.
je veux seulement comment recuperer les noms de textbox qui sont pas vide.Code:
1
2
3
4
5
6
7
8
9
10
11
12 Dim i As Integer Dim Nom() As String For Each Textb As Control In Me.Controls If TypeOf Textb Is TextBox Then If Textb.Text <> "" Then i = i + 1 Nom(i) = Textb.Name End If End If Next MsgBox(i) MsgBox(Nom(0))
Avec ce code tu stockes dans un tableau le nom des TextBox contenant du texte. Du moins c'est l'impression que j'ai car le VB.Net et moi ça fait 1337, je suis plutôt C# ^^
Vu ton post c'est ce que tu souhaitais donc après je ne vois pas ce que tu veux faire de plus, à moins que tu n'arrives pas à exprimer correctement ce que tu souhaites obtenir.
Ceci, peut-être?
Code:
1
2
3
4
5
6 For Each tb As TextBox In Me.Controls 'tu fais le tout de tes textbox If tb.Text = String.Empty Then 'tu vérifies si la propriété text est vide 'ici tu mets ton code (tu stocke les textbox dan sun tableau, ou tu appliques ce que tu veux directement...) End If Next
Ton premier code semble etre a peu près correct si ce n'est que tu ne redimensionne pas ton tableau et tu ne vide pas tes textbox comme tu le souhaite dans ta première explication.
Le code suivant devrait marcher :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 'Dim i As Integer est inutile Dim Nom() As String For Each Textb As Control In Me.Controls If TypeOf Textb Is TextBox Then 'Tu rajoute un trim si tu ne veux pas tenir compte des espaces If Textb.Text.Trim <> "" Then 'Tu remets comme voulu le texte a "" Textb.Text = "" 'Tu redimensionne ton tableau avant d'y placer le nom redim preserve Nom(Nom.length) Nom(Nom.length - 1) = Textb.Name End If End If Next
Merci bien.