我有三种形式; Formone Mdi形式,Formtwo非Mdi形式和Formtree,Formtwo的孩子
我希望当Formthree关闭时,在Formtwo中调用一个子程序(RefreshData()),这就是我所拥有但不工作的。感谢
Dim formone As New MainWindow
Dim formtwo As New AppFormData
Dim formthree As New UpdateAppForm
formtwo.MdiParent = Me.MdiParent
formtwo.RefreshData()
Me.DialogResult = Windows.Forms.DialogResult.OK
答案 0 :(得分:0)
首先,确保将formtwo
' s RefreshData()
声明为Public
,以便可以从不同的表单而不是创建它的表单访问它。
像:
Public Sub RefreshData()
...
End Sub
然后关于在formthree
关闭时如何调用它,您可以使用Form_Closing
事件。
Private Sub formthree_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
formtwo.RefreshData()
End Sub
答案 1 :(得分:0)
更好的设计将是使用事件。如果您将Formthree作为任何其他形式的子项,则此方法将正常工作,因为它不依赖于此父表单。在Formthree中声明事件并在父类中使用它,即Formtwo
Public Class Formthree
Public Event CallMethod()
Private Sub Formthree_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
RaiseEvent CallMethod()
End Sub
.
.
.
End Class
Public Class Formtwo
Private WithEvents frm3 As Formthree
.
.
.
Private Sub frm3_CallMethod() Handles frm3.CallMethod
RefreshData()
End Sub
End Class