【发布时间】:2014-11-30 03:38:37
【问题描述】:
我正在使用 MDI 表单,并且有一个 MDI 父级打开不同的 MDI 子级。在一个特定的 MDI 子级上,我想在与子级相同的屏幕上打开一个普通窗口,但是当我将 MDI 父级移动到新屏幕时,普通窗口会在主屏幕上连续打开。
我尝试了许多不同的事情,但似乎无法解决它。 有人有什么建议吗?
表格大约向下 4 层。因此,我从父级打开了一个子级,然后从该子级我在父级内部打开了另一个表单,然后我想从那里打开另一个表单,它位于特定位置的所有内容之上。我还希望能够使用“停用”方法关闭此表单,因此据我所知,它不能是 ShowDialog。
希望一切都有意义。谢谢
【问题讨论】:
-
你说你尝试过不同的东西,具体是什么?如果使用 Show 方法并以表单所有者
normalWindowForm.Show(childForm)的身份传入子表单,会发生什么情况?您是否尝试将正常的窗口边界/位置设置为 mdi 父级所在的屏幕? -
对不起,蔡斯,我应该包括那个细节。我曾尝试使用
frm.Owner = Me和frm.Show(Me)。不过,我不确定您的第二条评论是什么意思。 -
普通窗口的 StartPosition(在属性中)是什么?
-
我尝试过使用
CenterParent和Manual,但它们的结果相同。 -
这是我测试的:从 mdiParent 开始。将其移至第二个屏幕。开了一个mdiChild。从那个 mdiChild,打开另一个 mdiChild。从那个孩子那里,打开了一个普通的表单(设置为中心屏幕,表单所有者是 mdiChild),它正确地以我的第二个屏幕为中心打开。不知道为什么你的不起作用。关于我上面评论的第二部分,请参见:social.msdn.microsoft.com/Forums/vstudio/en-US/…