从 ShowDialog 窗体设置 MdiParent

Set MdiParent from a ShowDialog form

我有一个表单,frmEmail,它使用 f.ShowDialog 调用(其中 f 是 frmEmail 的一个实例)。

如何在关闭表单时打开 frmOrder 的实例但设置 fOrder.MdiParent = frmMain

frmMain 是我的 MDI 窗体,frmOrder 是我需要打开的窗体,frmEmail 是我打开它的窗体。

我现在的密码是

revoke = True

Dim f As New frmOrder(con, False, False, , orderNum)
f.MdiParent = ' Not sure what to put here?
f.Show()

Me.Close()

我是否需要传入存储对 frmMain 的引用的变量?还有其他方法吗?

显然我不能使用 f.MdiParent = Me.MdiParent,因为正如我之前提到的,frmEmail 是使用 f.ShowDialog 打开的,所以没有 MdiParent.

您仍然可以在 ShowDialog 中打开表单并设置 "Owner" 属性。

在您打开 frmEmail 的位置,而不是像使用 f.ShowDialog() 那样打开它,使用 f.ShowDialog(Me.MdiParent)(如果您的 MDI 窗体是您打开 frmEmail,否则只需根据相关情况对其进行调整)。

这样,当打开 frmOrder 时,您将 MdiParent 属性 设置为 frmEmail 的所有者 属性。

Dim f As New frmOrder(con, False, False, , orderNum)
f.MdiParent = Me.Owner
f.Show()