我有一个表格,frmEmail
,它使用f.ShowDialog
(其中f是frmEmail
的实例)调用。从ShowDialog表单设置MdiParent
如何在关闭表单时打开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()调用之后,只有在它返回DialogResult.Ok时才被执行。 –
@HansPassant我不能把它放在那里,因为它是否应该重新打开'frmOrder'。 – Harambe
当然,这正是你必须检查ShowDialog()的返回值的原因。并关闭它正确,而不是Close(),但通过分配Me.DialogResult属性。一个对话框应该*总是*有一个对话结果。 –