Как обойти событие 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 ответа

Решение
//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);
    }
}
Другие вопросы по тегам