2009-07-27 89 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

我觉得你的问题来自不正确地使用模态的概念。最好的事情是重新思考整个设计。模态窗体应该与用户进行对话,通常只打开其他模态窗体。即使这是一个值得怀疑的选择。

话虽如此,你可以尝试重新父母非模态窗体时,莫代尔一出现。