问题描述
DimfrmAsNewMDImainDimfrm2AsNewform2frm2.MdiParent=frmfrm2.Show()Me.Hide()我那里错了??
解决方案
解决方案二:
'DimfrmAsNewMDImain去掉!Dimfrm2AsNewform2frm2.MdiParent=me.MdiParentfrm2.Show()Me.Hide()'或直接Close掉
解决方案三:
当你使用NewMDImain的时候,只是把frm2加到了一个未显示出来的刚建立的MdiMain中了,而不是现有的MdiMain实例。因为你的当前窗体Me就是MdiMain的子窗体,所以可以通过Me.MdiParent得到主窗体实例,因此用如下语句问题解决:frm2.MdiParent=me.MdiParent
解决方案四:
你在使用类似Word这种多文档软件的时候如果把最外层的那个最小化按钮按下,整个word(包括里面所有的文档窗体)都会最小化。你的代码先创建了一个MDImain主窗体,它相当于Word的主窗体,然后创建了一个普通窗体,并将它的MDI父窗体设置成刚创建的MDI主窗体。那么这个frm2就成了frm的一个子窗体,当你关闭或者最小化frm,都会导致其所有子窗体同时关闭或最小化,所以frm也不见了。另外你的这段代码是写在哪里?Me.Hide()Me指的是什么?应该在另一个子窗体里写这段代码吧?就像2楼写的。
解决方案五:
2楼的方法只适合于存在MdiParent属性假如我的每一个窗体没有设置MdiParent属性,就会出现两个窗体全部关闭的现象
解决方案六:
2楼的方法只适合于存在MdiParent属性假如我的每一个窗体没有设置MdiParent属性,就会出现两个窗体全部关闭的现象------------------------------------------正常情况下不可能出现这种情况!如果真的是这样的,那么在第一个窗体建立的时候或显示第二个窗体之前要能获取到MdiParent窗体。最好是在第一个窗体实例化后把MdiParent做为属性传到第一个窗体,然后在显示第二个窗体的时候使用这个属性值做为主窗口来显示。