如何在退出二级表单时重新加载主表单?例如,如果frmMain是主窗体并且你隐藏了加载另一个名为GenerateNumbers的窗体,那么当用户退出GenerateNumbers时你如何得到frmMain?
答案 0 :(得分:3)
最好的方法是在子表单的Closing
事件中添加一个事件处理程序。这样,主表单将在子表单关闭时收到通知,然后它可以重新显示自己。例如:
AddHandler frmChild.Closing, AddressOf ChildClosing
frmChild.Show()
Me.Hide()
'....
Private Sub ChildClosing(sender As Object, e As EventArgs)
RemoveHandler CType(sender, Form).Closing, AddressOf ChildClosing
Me.Show()
End Sub
正如其他人所说,如果您使用ShowDialog
方法显示子表单,则更容易。事实上,如果你这样做,那么真的没有理由隐藏主表单,你可以将主表单作为所有者传递给对话框:
frmChild.ShowDialog(Me)
提示:如果不隐藏主窗体,请将子窗体的起始位置属性设置为所有者的中心。
或者,您可以提供对主窗体的引用,以便它可以在关闭时使主窗体可见,但我会说这是最不可取的选项。
答案 1 :(得分:1)
如果您使用ShowDialog调用辅助表单,则在从ShowDialog方法返回的辅助表单后,您可以使主表单可见。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim frm2 As Form2 = New Form2
Me.Hide()
frm2.ShowDialog()
Me.Show()
End Sub
答案 2 :(得分:0)
如果您将辅助表单显示为模式,则应该很容易。无论你用什么来展示二级形式,都要把它放在一边:
frmMain.Visible = False
frmGenerateNumbers.ShowDialog()
frmMain.Visible = True