我有一個表格,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屬性。一個對話框應該*總是*有一個對話結果。 –