2009-10-26 54 views
3

我有一個父窗體設置爲TopMost,然後我有另一個窗體打開時單擊按鈕。這個孩子形式也被設置爲TopMost。我遇到的第一個問題是,當我打開子表單時,應用程序基本上會凍結,因爲您無法訪問任何內容。我決定不使用ShowDialog()來打開子窗體,而是使用Show(this)。這確實解決了最初的問題,但現在我有了一個新的問題。 childforms啓動郵件設置爲CenterParent,當我使用Show(this)時,它不起作用。有沒有什麼辦法可以讓childform處於打開狀態,同時將父表單和父表單設置爲最上方,同時將childforms的起始位置設置爲CenterParent?謝謝。C# - 如何處理2個「TopMost」表單?

回答

3

您可以嘗試在子窗體可見的時間段內清除父窗體的TopMost屬性。

這將解決哪種形式應該是最頂層的問題,因爲只會有一個。

+0

好主意,應該想到我自己哈哈。 – user 2009-10-26 21:56:58

0

嗯。我創建了表單。然後我在兩者上設置TopMost = true。我添加按鈕首先和寫 new Form2().ShowDialog();

而且一切都很好。 Form2有效且可點擊。 Form1不是自ShowDialog被稱爲

而第二個變體正常工作。 Form2在屏幕中央打開。

可能是我誤解了一些東西?

2

我發現了一些有用的東西與你分享,夥計們。相反,下面的代碼

form2.TopMost = true; 

使用這種代碼主要形式有:

form2.Owner = this; 

如果使用Form.TopMost屬性,表單將重疊的其他所有非最頂層的形式,還有那些從其他應用程序。取而代之,將Form.Owner屬性設置爲父窗體 - 應該在窗體下的窗體(例如主窗體)。 G00d運氣:)