passer un formulaire par valeur
Bonjour, problème de compréhension ...
Je suis sur une appli avec un formulaire MDI. A partir d'un formulaire fille, je veux en appeler un autre et masquer le premier, pas de problème.
Mais a partir du second, lors de la fermeture, je veux revenir au premier formulaire ... ce qui nécessite de connaitre le formulaire appelant !
pour contourner le problème, dans le formulaire appelé, j'ai mis ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private mon_form_appelant As System.Windows.Forms.Form
Public Property form_appelant() As System.Windows.Forms.Form
Get
form_appelant = mon_form_appelant
End Get
Set(ByVal Formulaire As System.Windows.Forms.Form)
mon_form_appelant = Formulaire
End Set
End Property
Private Sub bp_retour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bp_retour.Click
' là, il faudrait que je raffiche le formulaire appelant, mais comment ?
form_appelant.Show()
Me.Close()
End Sub |
et lors de l'appel a paritr du formulaire appelant :
Code:
1 2 3 4 5 6
| Dim Ma_Fille_Mdi_visu As New Ecran_Visualisation
Ma_Fille_Mdi_visu.MdiParent = MDIParent1
Ma_Fille_Mdi_visu.form_appelant = Me
Ma_Fille_Mdi_visu.Show()
Me.Hide() |
et ça marche ...
mais pourquoi sachant que dans la propriété SET le formulaire est passé en Byval ?
perso, j'aurais plutôt Byref ...