Echange d'information entre 2 form

jessy5757 Messages postés 2 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 27 janvier 2011 - 27 janv. 2011 à 17:10
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 28 janv. 2011 à 13:02
Bonjour à toutes et à tous,
Je programme actuellement en VB.net sous visual studio 2010. Dans le programme sur lequel je travaille je dispose de 2 Form et dans l'une d'elle (form2) le fait de cliquer sur un bouton me retourne un tableau, je souhaiterais savoir comment je peux récupérer ce tableau pour l'utiliser dans form1.
Merci

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
27 janv. 2011 à 19:34
Bonjour,

3 solutions :
1) Passer par un module qui mémorise les variables necessaire (donc accessible par les 2 forms
Pas super.

2) substituer ShowDialog (ou Show)
Public Overrides ShowDialog(Byval pParent as Form1) as DialogResult
Ensuite, tu mémorise la form (pParent) dans un attribut (variable) de ta form (appellée).
puis, tu affiche la form :
Return MyBase.ShowDialog(pParent)

3) Surcharger ShowDialog (ou Show)
Public OverLoads ShowDialog(Byref pParametre1 as Integer) as DialogResult
Ensuite,
Tu affiche la form (et mémorise le retour)
Tu mets à jour le(s) paramètre(s) (il(s) est(sont) passé(s) par référence, ByRef)
Ensuite, tu retournes le retour précédemment mémorisé.

Voilà :)

0
jessy5757 Messages postés 2 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 27 janvier 2011
27 janv. 2011 à 22:07
Merci pour cette réponse
J'ai réussi à mettre en place la première solution et tout fonctionne. Pourquoi n'est ce pas une bonne solution ?

J'ai encore une question : ma deuxième form est longue à charger (environ 4s) est-il possible de la charger en même temps que la première mais ne l'afficher que plus tard ? (j'ai essayer avec Form2.show() mais elle met justement du temps à s'ouvrir ...)
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
28 janv. 2011 à 13:02
Bonjour,

1) Car ça ne limite pas la visibilité des variables, sur de plus gros projet, ça devient vite ingérable.

2) Tu peux faire dans ta form1 :
Private mForm2 as Form2=new Form2

Et à la place de faire
form2.ShowDoalog
tu fais
mForm2.ShowDialog

Pense aussi à ne pas détruire l'objet mForm2 (Dispose) aussi bien dans Form1 que dans Form2.
A la place de Close, préfère Hide (il me semble.

0
Rejoignez-nous