none
(VB2005 Winform)控件如何知道窗体正在关闭,并且终止FormClosing事件? RRS feed

  • 问题

  • (VB2005 Winform)在自制控件中的Validating事件中对数据检查,检查不通过则设置e.Cancel=True,这样焦点不会转移。
    一般场景下这样处理都没有问题。但是当窗体关闭的时候,同样要触发Validating事件,但是不管验证是否通过
    (e.Cancel),FormClosing事件都会触发~
    因为有很多VB6升级上来的代码是直接在FormClosing事件处理中做一些对象的销毁工作的,导致后续的处理全乱了
    ~:(
    如何在自制控件中去知道因为窗体正在关闭导致的Validating事件,并且在e.Cancel=True以后能终止FormClosing事件。
    当前俺用MessageFilter倒是可以模拟实现这样的处理,但是感觉不保险。
    是否有个更好的办法呢?请指教

    Work Harder
    2009年3月18日 3:27

答案

全部回复