2010-11-17 42 views
3

有沒有一種方法可以顯示沒有ShowDialog metod調用的模態窗體?通過顯示一個模態窗體,我的意思是窗體覆蓋當前窗體並阻止用戶輸入到緩衝窗體。要顯示的窗體是不是全屏的MessageBox樣式窗體。.NET Compact Framework - 沒有ShowDialog的模態窗體

感謝

多米尼克

回答

1

我會假設你可以設置「對話框」的形式留在上面(TopMost屬性),然後禁用的主要形式,以防止輸入。

這只是一個部分的解決方案,因爲主窗體仍然能夠被聚焦,關閉等。您將需要自己處理所有這些情況,以防止它們。

是否有任何特殊原因不想使用ShowDialog?

+0

有幾個原因不使用'的ShowDialog()',主要的問題是任務到任務回說,應用程序將顯示父其它應用形式爲實際在任務管理器中獲得自己的任務。實際上,您無法對父窗體執行任何操作,因爲它拒絕輸入,但您無法進入打開的窗口,因爲它是一個單獨的過程。 – 2013-12-18 06:44:29

0

你可以試着這樣做:

MyForm frm = new MyForm(); // this would be your modeless dialog 
    frm->show(this);   // "this" being the instance that invokes it. 
+1

緊湊框架上不提供'Show(Form)'重載。相反,您必須將'Owner'屬性設置爲擁有的表單,然後調用'Show()'。 – 2013-12-18 06:46:04