【问题标题】:Can't Open A Non MDI Form On The Same Screen As The MDI Parent无法在与 MDI 父级相同的屏幕上打开非 MDI 表单
【发布时间】:2014-11-30 03:38:37
【问题描述】:

我正在使用 MDI 表单,并且有一个 MDI 父级打开不同的 MDI 子级。在一个特定的 MDI 子级上,我想在与子级相同的屏幕上打开一个普通窗口,但是当我将 MDI 父级移动到新屏幕时,普通窗口会在主屏幕上连续打开。

我尝试了许多不同的事情,但似乎无法解决它。 有人有什么建议吗?

表格大约向下 4 层。因此,我从父级打开了一个子级,然后从该子级我在父级内部打开了另一个表单,然后我想从那里打开另一个表单,它位于特定位置的所有内容之上。我还希望能够使用“停用”方法关闭此表单,因此据我所知,它不能是 ShowDialog。

希望一切都有意义。谢谢

【问题讨论】:

  • 你说你尝试过不同的东西,具体是什么?如果使用 Show 方法并以表单所有者normalWindowForm.Show(childForm) 的身份传入子表单,会发生什么情况?您是否尝试将正常的窗口边界/位置设置为 mdi 父级所在的屏幕?
  • 对不起,蔡斯,我应该包括那个细节。我曾尝试使用frm.Owner = Mefrm.Show(Me)。不过,我不确定您的第二条评论是什么意思。
  • 普通窗口的 StartPosition(在属性中)是什么?
  • 我尝试过使用CenterParentManual,但它们的结果相同。
  • 这是我测试的:从 mdiParent 开始。将其移至第二个屏幕。开了一个mdiChild。从那个 mdiChild,打开另一个 mdiChild。从那个孩子那里,打开了一个普通的表单(设置为中心屏幕,表单所有者是 mdiChild),它正确地以我的第二个屏幕为中心打开。不知道为什么你的不起作用。关于我上面评论的第二部分,请参见:social.msdn.microsoft.com/Forums/vstudio/en-US/…

标签: vb.net forms mdi


【解决方案1】:

您必须将此表单设为父表单的子表单。您可以使用

Form.MDIParent = Me.MDIParent
Form.Show

这应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多