Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.Net 2008“;“未处理InvalidOperationException”;尝试显示或隐藏窗体时_Vb.net_Invalidoperationexception - Fatal编程技术网

VB.Net 2008“;“未处理InvalidOperationException”;尝试显示或隐藏窗体时

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()

我的程序中有多个表单。菜单表单(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以隐藏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。我以前用过,但没意识到我需要它。