0

我的程序中有多个表格。菜单窗体 (frmMenu) 包含隐藏菜单窗体并显示其相应窗体的按钮,例如窗体 frmXyl。关闭窗体 frmXyl 应该隐藏它并显示窗体 frmMenu。

'窗体frmMenu按钮点击事件

    'Hide the form frmMenu
     Me.Hide()
    'Show the form frmXyl
     frmXyl.Show()

'这是窗体frmXyl窗体关闭事件

    'Hide the form frmXyl
    Me.Hide()
    'Show the form frmMenu
    frmMenu.Show()

我可以启动程序并单击按钮隐藏frmMenu并显示frmXyl,然后我可以关闭隐藏frmXyl并显示frmMenu的frmXyl。

现在,如果我再次单击按钮以显示 frmXyl 并隐藏 frmMenu,则会出现错误。

这是错误:创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:无法使用已与其底层 RCW 分离的 COM 对象。

我之前使用过表单的显示和隐藏没有问题,提前感谢您可能需要的任何解决方案。

4

1 回答 1

1

隐藏表单不足以防止它被丢弃。您还需要在 FormClosing 事件中设置 e.Cancel = True 以允许表单对象存活。您需要注意 e.CloseReason,当 Windows 正在关闭或用户试图退出您的程序时,您不想阻止它关闭并显示新表单。

于 2012-09-05T13:33:07.380 回答