For each dans usercontrol

cs_got
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016
- 7 avril 2015 à 10:32
Whismeril
Messages postés
17675
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
- 7 avril 2015 à 14:13
Bonjour,


j'ai créé un user control avec plusieurs label et textbox.
j'insère plusieurs instance de ce user control sur une form.
je voudrais remplir les text box avec quelque chose du genre :

For Each formtextbox As TextBox In Me.Controls.OfType(Of TextBox)()



next


Mais avec ce code il ne me trouve pas les textbox des usercontrol comme faisant parti de me.control...

une idée pour les "trouver"

Merci

3 réponses

Whismeril
Messages postés
17675
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
613
7 avril 2015 à 10:55
Bonjour,

Ton for each tu le fais dans le form?
Dans ce cas, forcément, il ne sont pas dans ta form mais dans ton user controle.
Tu devrais ecrire une méthode dans ton user control ou tu mets le contenu des textbox en paramétre.
Cette methode rempli les textbox.
Et dans ton form tu l'appelle pourt chacun de tes controles
1
cs_got
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016

7 avril 2015 à 11:16
Bonjour,

merci effectivement c'est la solution que j'ai trouvé pour l'instant.

Apres je trouve ça plus "lourd" à coder mais il semblerait que ce soit la "good practice" dans ce cas.

Si quelqu'un a une idée pour le faire façon bourrin rien que pour l'information je suis preneur

Merci



--
0
Whismeril
Messages postés
17675
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
16 août 2022
613
Modifié par Whismeril le 7/04/2015 à 14:14
Oui c'est la bonne pratique, car ce qui est interne au contrôle (comme pour toute classe) doit être géré par ce contrôle.
Si pour x raison tu dois changer ce comportement, ça doit être "transparent" pour les extérieurs qui parlent avec ton contrôle.

Admettons que tu aies 4 textbox, dans un premier temps tu veux que "un" apparaisse dans la première, "deux" dans la seconde, etc..
Ta méthode aura pour signature un truc du style
Public Sub MaMethode(Texte1 As String, Texte2 As String, Texte3 As String, Texte4 As String)


et tu l'appelleras comme ça
monControle.MaMethode("un","deux","trois","quatre")


Si à l'avenir, tu veux que "un" soit dans le textbox2, tu le géreras en interne, pour dehors l'ordre ne changera pas.
0
cs_Le Pivert
Messages postés
7803
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2022
132
7 avril 2015 à 12:08
Bonjour,

Voir ceci pour boucler sur les contrôles:

http://silkyroad.developpez.com/VBA/ControlesUserForm/
0