[VB.Net] Passer un objet d'une Form1 à une fonction d'une Form2
Salut à tous,
J'ai un problème de passage de paramètres.
J'ai deux forms: Form1 et Form2.
Dans ma Form1 j'ai un menu, Menu1
Si on clique sur le 1er item de Menu1 (mnuCtx1), la Form2 s'ouvre. Voici un aparçu du code:
Code:
1 2 3 4 5 6 7
| Private Sub mnuCtx1_Click(ByVal senderMnu As Object, ByVal e As System.EventArgs) Handles mnuCtxChap.Click
Dim frm2 As New Form2
frm2.MdiParent = Me
frm2.Show()
End Sub |
dans Form2, j'ai également une fonction
Code:
1 2 3 4 5
| Public Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
MessageBox.Show("Paramètre form 1 " + senderMnu.ToString)
end Sub |
Mon souci, c'est que j'aimerai réutiliser l'objet qui a déclenché mnuCtx1_Click (senderMnu qui est dans la Form1), dans la méthode de la Form2 btnOk_Click.
J'ai d'abord défini une variable de type Form1 dans la méthode btnOk_Click en faisant:
Code:
1 2 3 4 5 6 7
| Public Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
dim frm1 as Form1
dim myText as String = frm1.Treeview1 .SelectedNode.Text
MessageBox.Show("Paramètre form 1 " + myText.ToString)
end Sub |
Mais lors je l'éxécution, je récupère une erreur du type
Citation:
Object reference not set to an instance of an object.
Pourtant, je sais que à ce moment là, mon treeview est déjà initialisé.
J'ai pensé à un autre truc:
Code:
1 2 3 4 5 6 7 8
| Private Sub mnuCtx1_Click(ByVal senderMnu As Object, ByVal e As System.EventArgs) Handles mnuCtxChap.Click
Dim frm2 As New Form2
frm2.MdiParent = Me
frm2.btnOk_Click(senderMnu, e)
frm2.Show()
End Sub |
Mais c'est le compilateur me met :
Citation:
Property access must assign to the property or use its value
.