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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
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 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
7 avril 2015 à 12:08
Bonjour,

Voir ceci pour boucler sur les contrôles:

http://silkyroad.developpez.com/VBA/ControlesUserForm/
0
Rejoignez-nous