首页 > 解决方案 > 在 FormClosing 事件之前清除 Form 中的所有元素

问题描述

我想检查表单关闭事件的标签值:

  private void FrmDialog_FormClosing(object sender,
 System.Windows.Forms.FormClosingEventArgs e)
        {
           if(label.Text == "something")
                {
                  doSomething();
                }
        }

但是,似乎表单中的所有元素都在 FormClosing 事件之前被清除,因为标签为空。有什么办法可以做我所描述的吗?

标签: c#winforms

解决方案


除了 中的输入错误之外label.Text,您可以确定在事件 Form.Closing 的事件处理期间,您没有自行处理的每个控件仍然可以正常工作。即使在 Form.Closed 期间并且在protected override void Dispose(bool disposing)控件期间应该仍然存在,否则,它们不能被处置,可以吗。

如果您的调试器另有说明,请检查您是否真的订阅了事件 Form.Closing。在 procedure 中放置一个断点Dispose(bool disposing),并检查是否在 Dispose 之前调用了您的事件处理程序。


推荐阅读