MDI childform et collections

Résolu
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006 - 22 févr. 2006 à 00:27
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006 - 22 févr. 2006 à 17:36
bonjour,


J'ai une forme MDI avec plusieurs childforms. D'autres part , j'ai 2 collections crées à partir de fichiers XML.
J'ai besoin de ces 2 collections dans chaque childform. Pour ne pas recréer ces collections à chaque chargement d'une forme fille, je cherche la meilleure méthode.
Soit les collections sont peuplées au chargement du MDI ,soit dans un module séparé mais dans les 2 cas je n'arrive pas à y accéder à partir des childforms
Est-il possible de faire dans une childform qqch comme:

datagridview1.datasource=MDIparent1.le_nom_de_ma_collection

dans le module ou dans MDI j'ai:

Public le_nom_de_ma_collection As Collection


merci pour votre précieuse aide.
A+

6 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
22 févr. 2006 à 17:33
<HR>
' Formulaire enfant
<HR>
Public Sub New (maCollection as Collection)

InitializeComponents()

DataGridView.DataSource = maCollection

End Sub



<HR>
' Formulaire parent
<HR>
Private m_MaCollection As Collection = Nothing

' tu peux peupler ta collection à la création du formulaire
' la collection est utilisable durant toute l'execution
Private Sub ParentForm_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HandleCreated

m_MaCollection = New
Collection
m_MaCollection.Add("Item0"
)
m_MaCollection.Add("Item1"
)
m_MaCollection.Add("Item2"
)

End Sub

' instanciation et affichage d'un formulaire enfant
Private
Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button.Click

Dim childForm as New CustomForm (m_MaCollection)
childForm.MdiParent = Me
childForm.Show()

End Sub

[ Dalida ]




<HR>



pensez à indiquer la version du language
3
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 02:23
précision: sous vb2005 express
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
22 févr. 2006 à 14:08
salut,





si j'ai compris ce que tu veux, tu peux surcharger le constructeur de ton formulaire enfant.





Public Sub New (maCollection as Collection)





InitializeComponents()





DataGridView.DataSource = maCollection





End Sub





et son appel :





Dim maCollection as Collection = Nothing



' assignation de maCollection






Dim childForm as New CustomForm (maCollection)



childForm.MdiParent = Me



childForm.Show()





si tu dois utiliser la collection ultérieurement tu peux garder une référence interne.





Private m_MaCollection As Collection = Nothing





Public Sub New (maCollection as Collection)




' ...




m_MaCollection = maCollection




'...




End Sub



















[ Dalida ]<hr>
pensez à indiquer la version du language
0
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 15:05
merci, ca m'eclaire beaucoup dejà au niveau des commandes Public sub à mettre, me reste à savoir où et quand je crée ma collection (au chargement du MDIParentForm? ) et où je dois copier ces différents codes ci dessus?
Si j'ai bien compris; le 1er je le mets dans le child
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 15:36
oops, la fin de mon message précédent a disparu, je ne sais où?
Si j'ai bien compris; le 1er je le mets dans le child, le 2e dans le bouton qui commande l'ouverture du child mais le 3e je le mets où?

encore merci
Mousy
0
Mousy Messages postés 26 Date d'inscription jeudi 9 février 2006 Statut Membre Dernière intervention 28 février 2006
22 févr. 2006 à 17:36
on ne peut plus clair :)

grand merci

Mousy
0
Rejoignez-nous