如何绕过FormClosing事件

时间:2012-05-16 20:42:48

标签: c# .net winforms formclosing

我有以下代码:

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

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

按钮的代码:

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

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

2 个答案:

答案 0 :(得分:4)

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

另一个选择是创建一个布尔字段“shouldIReallyClose”。将其默认为false。当你真的要关闭表单时,将其设置为true。更改事件处理程序以在取消事件之前检查该布尔值。

答案 1 :(得分:1)

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