2013-02-19 66 views
1

如果我将所有者设置为窗口并以非对话模式显示,我会得到两件事: 1.子窗口始终位于父窗口顶部(虽然有仍然可以访问父窗口) 2.如果我关闭父窗口,子窗口也将被关闭设置所有者为对话框窗口

在对话窗口中两个点没有意义的情况下: 1子窗口的父窗口的顶部独立所有者的财产 2.你没有机会关闭父窗口

所以我没有意义设置所有者属性到Dialog窗口或者可能有一些争论呢?

回答

2

由于the documentation指出有原因:

当通过调用的ShowDialog打开一个子窗口,你还应该设置子窗口的所有者属性。如果您不这样做,那么您的用户将无法通过按任务栏按钮来恢复子窗口和父窗口。相反,按任务栏按钮将产生一个窗口列表,包括子窗口和父窗口,供他们选择;只有选定的窗口被恢复。

您还应该在调用ShowDialog的窗口中设置Owner属性,以确保UI Automation的正确行为。

2

除了H.B.说,

设置窗口的所有者显示它之前,因为可能会出现 否则莫名其妙的错误,其中一个重点或模式窗口 隐藏在其他窗口后面这一点很重要。为防止出现此类错误,您将所有者属性设置为当前窗口。

Mark Seemann,.NET中的依赖注入