C#在模态形式前面使用非模态形式?

时间:2009-07-27 10:08:24

标签: c# winforms

在我们的应用中,我们有一个可以非模态打开的表单。我们有另一种形式可以模态打开。

从模态表单中,您可以单击按钮以打开非模态表单。这很好用,你可以用模态和非模态形式混淆。

但是,如果非模态形式在模态形式之前打开,则在模态形式关闭之前不能再访问非模态形式。

无论如何,没有关闭并重新打开非模态形式,我可以从模态形式将非模态形式带到前面吗?

由于

2 个答案:

答案 0 :(得分:2)

您描述的是预期的行为。

如果“A”是非模态的而“B”是模态的,那么:

打开“B”然后“A”意味着可以访问这两个表单,因为最后打开的表单是非模态的。

打开“A”然后“B”将意味着只能访问“B”,因为最后打开的表格是模态的。

因此,如果您希望无论打开它们的顺序如何都可以访问这两个表单,您将需要同时进行非模态化。

答案 1 :(得分:1)

我认为您的问题来自错误使用Modal概念。最好的办法是重新思考整个设计。模态表单应该与用户执行对话,通常只打开其他模态表单。即使这是一个值得怀疑的选择。

话虽如此,你可以尝试在模态出现时重新教育非模态表格。