如果我将所有者设置为窗口并以非对话模式显示,我会得到两件事: 1.子窗口始终位于父窗口的顶部(同时仍可访问父窗口) 2.如果我关闭父窗口,子窗口也将关闭
如果是对话窗口,两点都没有意义: 1.子窗口独立于所有者属性位于父窗口的顶部 2.您没有机会关闭父窗口
所以我是对的,没有任何意义将所有者属性设置为Dialog窗口,或者可能有一些参数?
答案 0 :(得分:2)
正如the documentation指出的那样有原因:
通过调用ShowDialog打开子窗口时,还应设置子窗口的Owner属性。如果不这样做,那么您的用户将无法通过按任务栏按钮来恢复子窗口和父窗口。相反,按任务栏按钮将生成一个窗口列表,包括子窗口和父窗口,供他们选择;只恢复选定的窗口。
您还应该在通过调用ShowDialog打开的窗口上设置Owner属性,以确保UI Automation的正确行为。
答案 1 :(得分:2)
除了H.B.说,
在显示窗口之前设置窗口的所有者非常重要,因为 否则奇怪的错误可能发生在聚焦或模态窗口的地方 隐藏在其他窗户后面。要防止此类错误,请设置 所有者属性到当前窗口。
Mark Seemann,.NET中的依赖注入