2009-07-27 79 views
2

在我們的應用程序中,我們有一個可以非模態打開的窗體。我們有另一種可以模式打開的形式。C#在模態窗體前引入非模態窗體?

從模態窗體中,您可以單擊按鈕打開非模態窗體。這工作正常,你可以混淆模態和非模態兩種形式。

但是,如果非模態形式在模態形式之前打開,那麼在模態形式關閉之前無法再訪問非模態形式。

反正有沒有關閉和重新打開非模態窗體,我可以從模態窗體中將非模態窗體帶到前面?

感謝

+2

如果你需要同時打開和訪問兩個窗口,模式窗口是一個不錯的選擇。 – Scoregraphic 2009-07-27 10:24:01

+0

簡短的回答是否定的 - 你所說的是「如果有一個系統強制'A',我不希望'A'我仍然可以使用這個系統,但沒有得到它。」 – ShuggyCoUk 2009-07-27 12:18:34

回答

2

你描述的是預期的行爲。

如果「A」是非模態和「B」是模態的,則:

開放「B」,然後「A」將意味着這兩種形式可以作爲最後打開的形式是無模式進行訪問。

打開「A」然後「B」意味着只有「B」可以被訪問,因爲最後打開的窗體是模態的。

因此,如果您希望無論打開的順序如何,都可以訪問這兩個表單,您將需要使這兩個表單都是非模態的。

1

我覺得你的問題來自不正確地使用模態的概念。最好的事情是重新思考整個設計。模態窗體應該與用戶進行對話,通常只打開其他模態窗體。即使這是一個值得懷疑的選擇。

話雖如此,你可以嘗試重新父母非模態窗體時,莫代爾一出現。

相關問題