【发布时间】:2010-05-10 08:24:26
【问题描述】:
我有一个 MDI 主窗体。我在上面托管了一个表单,我希望它在关闭之前显示一个消息框(询问用户是否保存更改)。
到目前为止一切顺利,但是我发现关闭 MDI 主窗体不会引发 MDI 子 FormClosing 事件。我想我会在 MDI 主的 FormClosing 事件(确实会引发)中调用 MdiChild.Close()。这个接缝可以工作,但它确实会导致问题......
在我显示的消息框中,我让用户保存更改,而不是保存更改并取消关闭。通常这工作正常,但我似乎无法找到取消 MDI 主的 FormClosing 事件的方法。有没有一种优雅的方式来做到这一点?
编辑:我通过抛出异常(当用户决定取消关闭过程时)解决了这个问题,该异常在 MDI 主的 FormClosing 事件中被捕获。通过这种方式,我知道何时必须取消 MDI 主的 FormClosing 事件,并且这个接缝可以正常工作......但是我无法相信这个“hax”是这样做的唯一方法。肯定有更好的方法吗?
【问题讨论】:
标签: c# mdi formclosing