2013-04-28 34 views
1

如果此問題缺少詳細信息,我很抱歉。我不確定要給出的詳細信息與問題的整體本質無關,這是...如何使自定義對話框停留在其父級之上而不在其他應用程序之上

如何讓一個表單始終處於另一個表單上而不會導致它處於另一個狀態(如我將'TopMost'屬性設置爲true時的情況)

我正在使用Microsoft Visual Studio 2012,這是一個WinForms(Windows窗體)應用程序。

回答

2

可以傳遞一個「所有者」,以顯示()是這樣的:

MyCustomDialog.Show(this); 

*假設代碼正在由「父」的形式來執行。

+0

我原來的代碼已經這樣做了。我可能沒有將調用表格設置爲父項。我確實嘗試了MyCustomDialog.Parent = this;創建後,但我有一個編譯錯誤。 無論如何,ShowDialog();正是我需要:) – MrVimes 2013-04-30 08:24:33

+0

更正:我認爲我的代碼是在構造函數中傳遞調用窗體(this),而不是顯示。我的錯。考慮到這一點,我會看到你的解決方案是否也適用於我回家的時候。 – MrVimes 2013-04-30 08:36:04

+0

我有機會進行測試,並且這確實使表單處於頂部,同時允許我與父表單進行交互。我更喜歡這個,我發現,所以我改變了我的代碼使用這種方法。 – MrVimes 2013-04-30 18:56:14

2

我找到了答案......

MyCustomDialog.ShowDialog(); 

而不是...

MyCustomDialog.Show(); 

會達到預期的效果。

+0

這種顯示子對話框的方式稱爲模態對話框。在這種情況下,您不能在孩子顯示時與父對話進行交互。 – Bronek 2013-04-28 22:18:13

+0

在這種情況下,我確信。當我能看到Idle_Mind的解決方案時,我會看看它是否可取。 – MrVimes 2013-04-30 08:38:07

相關問題