2013-02-19 31 views
1

如果我將所有者設置爲窗口並以非對話模式顯示,我會得到兩件事: 1.子窗口始終位於父窗口頂部(雖然有仍然可以訪問父窗口) 2.如果我關閉父窗口,子窗口也將被關閉設置所有者爲對話框窗口

在對話窗口中兩個點沒有意義的情況下: 1子窗口的父窗口的頂部獨立所有者的財產 2.你沒有機會關閉父窗口

所以我沒有意義設置所有者屬性到Dialog窗口或者可能有一些爭論呢?

回答

2

由於the documentation指出有原因:

當通過調用的ShowDialog打開一個子窗口,你還應該設置子窗口的所有者屬性。如果您不這樣做,那麼您的用戶將無法通過按任務欄按鈕來恢復子窗口和父窗口。相反,按任務欄按鈕將產生一個窗口列表,包括子窗口和父窗口,供他們選擇;只有選定的窗口被恢復。

您還應該在調用ShowDialog的窗口中設置Owner屬性,以確保UI Automation的正確行爲。

2

除了H.B.說,

設置窗口的所有者顯示它之前,因爲可能會出現 否則莫名其妙的錯誤,其中一個重點或模式窗口 隱藏在其他窗口後面這一點很重要。爲防止出現此類錯誤,您將所有者屬性設置爲當前窗口。

Mark Seemann,.NET中的依賴注入

相關問題