我有一个需要显示对话框的MDIChild表单。目前我是从MDIChild表单内部这样做的...
f.ShowDialog(Me)
我应该使用f.ShowDialog(mdiparent)
吗?
在调用ShowDialog()
之前设置所有者有何区别?
我有一个需要显示对话框的MDIChild表单。目前我是从MDIChild表单内部这样做的...
f.ShowDialog(Me)
我应该使用f.ShowDialog(mdiparent)
吗?
在调用ShowDialog()
之前设置所有者有何区别?
我不确定这是否相关,但我在使用 ShowDialog 时遇到了一些问题,通常我会这样做:
f.Owner = Me
f.ShowDialog()
区别在于哪个父级拥有对话框。如果您明确设置了父级,则该窗口拥有对话框。如果您不设置它(使用 ShowDialog 的无参数版本),则应用程序的当前活动窗口拥有对话框。顺便说一下,这在 MSDN 上有说明。
这在通过使用 FormStartPosition.CenterParent 枚举设置 StartPosition 属性来居中对话框时非常有用。
这确实有所不同...
我有一个调用ShowDialog(Me)的MDI子窗口,在生成的对话框窗口中,Me.Owner引用MDI容器,而不是MDI子窗口。
使用Me.Owner.ActiveControl是一种解决方法,但使用:
Dim ContractForm As New Contract(strType, intMode)
ContractForm.Owner = Me
dgrAction = ContractForm.ShowDialog()
理解得很好。在生成的对话框中,Me.Owner现在确实引用了MDI子窗口。
希望这可以帮到你!