VB.Net 2008“;“未处理InvalidOperationException”;尝试显示或隐藏窗体时
我的程序中有多个表单。菜单表单(frmMenu)包含隐藏菜单表单并显示其相应表单的按钮,例如表单frmXyl。关闭表单frmXyl应将其隐藏并显示表单frmMenu '窗体frmMenu按钮单击事件VB.Net 2008“;“未处理InvalidOperationException”;尝试显示或隐藏窗体时,vb.net,invalidoperationexception,Vb.net,Invalidoperationexception,我的程序中有多个表单。菜单表单(frmMenu)包含隐藏菜单表单并显示其相应表单的按钮,例如表单frmXyl。关闭表单frmXyl应将其隐藏并显示表单frmMenu '窗体frmMenu按钮单击事件 'Hide the form frmMenu Me.Hide() 'Show the form frmXyl frmXyl.Show() '这是表单frmXyl表单关闭事件 'Hide the form frmXyl Me.Hide()
'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以隐藏frmXyl并显示frmMenu
现在,如果我再次单击按钮显示frmXyl并隐藏frmMenu a,我会得到一个错误
错误如下:创建表单时出错。有关详细信息,请参见Exception.InnerException。错误是:无法使用已与其基础RCW分离的COM对象
我以前使用过表单显示和隐藏,没有任何问题,提前感谢您对此的任何解决方案 隐藏表单不足以阻止它被处置。您还需要在FormClosing事件中设置e.Cancel=True,以允许表单对象继续存在。您需要注意e.CloseReason,您不想在Windows关闭或用户试图退出您的程序时阻止它关闭并显示新窗体。什么是InnerException堆栈跟踪?你在使用Office吗?如何关闭第二张表格?正在处理Form_Closing事件?您能告诉我在哪里可以找到堆栈跟踪吗?Office已安装,但未与此程序一起使用,也未运行。值得注意的是,我可能正在使用AxWindowsMediaPlayer控件和imports System.IO、AxWMPLib、WMPLib。是的,Steve,我正在使用表单结束事件。当我第二次尝试显示表单frmXyl时,问题就出现了。如果我只是想将表单隐藏起来,直到再次需要它,是否需要处理该表单?只能从frmMenu表单关闭程序。顺便说一句,我只是在我的一个表单中遇到了这个错误,其他表单都是函数(显示/隐藏),不包括e.Cancel=true如果您想再次显示它,您不希望它被处理掉。ActiveX控件对此特别恼火。问题的一部分是,你正在使用糟糕的vb.net语法来处理表单,frmMenu是一个类型名,而不是变量名。frmMenu是项目中一个表单的名称,我从来没有说过它是变量?!感谢您指出e.Cancel=true。我以前用过,但没意识到我需要它。