对话框不只是隐藏自己关闭

时间:2013-03-19 13:17:51

标签: c# winforms dialog

根据MSDN文档,对显示为ShowDialog()的表单的关闭操作只会导致表单被隐藏。对ShowDialog()的后续调用将取消隐藏表单。

这似乎并非如此。我有一个树形视图。在对ShowDialog()的调用之间保留检查状态,但用户已完成的任何节点扩展都将重置回其默认状态。此外,每次都会执行Load事件。所以它似乎不仅仅是“隐藏”形式。任何人都知道发生了什么事?

由于

1 个答案:

答案 0 :(得分:1)

我自己也遇到过这个问题。出于某种原因,在模式表单上调用Form.Hide或设置visible = false至少会在某些情况下调用Form.Close。为了解决这个问题,我将不透明度设置为零。您也可以使用Form.Show代替。

如果你想象一下模态对话的行为,这有点直观。它会阻止父窗口。因此,如果您隐藏它,那么用户就不会有活动窗口进行交互。 FWIW,我认为行为应该是父母再次变得活跃。情况并非总是如此。