vb.net - 在 Visual Basic 中退出时打开和关闭表单?

标签 vb.net winforms

如何在退出辅助表单时重新加载主表单?例如,如果 frmMain 是主窗体,而您将其隐藏以加载另一个名为 GenerateNumbers 的窗体,那么当用户退出 GenerateNumbers 时,您如何取回 frmMain?

最佳答案

最好的方法是向子窗体的 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)

提示:如果不隐藏主窗体,请将子窗体的起始位置属性设置为以所有者为中心。

或者,您可以提供对主窗体的引用,以便它可以在关闭时使主窗体可见,但我认为这是最不可取的选择。

关于vb.net - 在 Visual Basic 中退出时打开和关闭表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811278/

相关文章:

vb.net - 如何使用VB.NET删除文件?

c# - 使用 winforms 给 excel 单元格上色

c# - 当我希望它显示为 1000 时,DataGridView 值显示为 1,000

c# - 是否有任何预制函数可以帮助根据父控件调整控件的大小?

c# - 使用 LinearGradientBrush 填充路径

c# - 带滚动条的控件上的 .NET C# MouseEnter 监听器

mysql - 使用数据表和数据适配器添加记录

asp.net - 在线商店SEO的页面关键字和描述策略

mysql - InvalidOperationException 未处理 - 轻松修复?

vb.net - VB.NET 中的 Action 委托(delegate)接受函数 lambda 表达式