首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从MDIChild表单内部正确使用ShowDialog()?

如何从MDIChild表单内部正确使用ShowDialog()?
EN

Stack Overflow用户
提问于 2009-01-28 20:48:44
回答 3查看 9.2K关注 0票数 3

我有一个需要显示对话框的MDIChild表单。我目前正在mdichild表单中这样做...

代码语言:javascript
运行
复制
f.ShowDialog(Me)

我应该使用f.ShowDialog(mdiparent)

在调用ShowDialog()之前设置所有者有什么区别

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-11 15:22:17

不同之处在于哪个父级拥有对话框。如果您显式设置了父窗口,则该窗口将拥有该对话框。如果您没有设置它(使用ShowDialog的无参数版本),那么您的应用程序的当前活动窗口将拥有该对话框。这是MSDN上的,顺便说一句。

这在通过使用FormStartPosition.CenterParent枚举设置StartPosition属性使对话框居中时很有用。

票数 3
EN

Stack Overflow用户

发布于 2009-01-28 22:29:38

我不确定这是否相关,但我在ShowDialog中传递拥有表单时遇到了一些问题,我通常这样做:

代码语言:javascript
运行
复制
f.Owner = Me
f.ShowDialog()
票数 4
EN

Stack Overflow用户

发布于 2015-09-11 00:13:56

这确实很重要..。

我有一个调用ShowDialog(Me)的MDI子进程,在结果对话框窗口中,Me.Owner引用了MDI子进程,而不是MDI子进程。

使用Me.Owner.ActiveControl是一种解决方法,但使用:

代码语言:javascript
运行
复制
       Dim ContractForm As New Contract(strType, intMode)
       ContractForm.Owner = Me
       dgrAction = ContractForm.ShowDialog()

很好的理解了。在结果对话框窗口中,Me.Owner现在确实引用了MDI子对象。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/489281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档