如何绕过表单关闭事件

本文关键字:事件 表单 何绕过 | 更新日期: 2023-09-27 18:34:28

我有以下代码:

private void form1_closing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
    this.Hide(); 
}

我想要一个关闭窗体的按钮,而不触发此事件。我该怎么做?

按钮的代码:

private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
    Application.Exit(); 
}

我希望上面的按钮关闭表单而不是隐藏它。

如何绕过表单关闭事件

//unsubscribe the mean "don't let me close" handler
this.FormClosing -= form1_closing; 
//close form
this.Close();

另一种选择是将布尔字段设置为"shouldIReallyClose"。 默认为 false。 当您确实要关闭窗体时,请将其设置为 true。 更改事件处理程序以在取消事件之前检查该布尔值。

protected override void OnFormClosing(FormClosingEventArgs e)
{
    if(!boolTrackingButtonPressed)
    {
       base.OnFormClosing(e);
    }
}