2012-05-16 3 views
1

У меня есть следующий код:Как обойти FormClosing событие

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

Я хочу кнопку, которая закрывает форму, не вызывая это событие. Как мне это сделать?

Код кнопки:

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

Я хочу выше кнопку, чтобы закрыть форму и не скрывает.

ответ

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

Другим вариантом было бы создание булевского поля «shouldIReallyClose». По умолчанию это значение false. Когда вы действительно хотите закрыть форму, установите ее в true. Измените обработчик события, чтобы проверить, что boolean перед отменой события.

+0

я получаю сообщение об ошибке здесь: form1_closing –

+0

Я не за тобой ... это то, что у меня есть: частный недействительным exitToolStripMenuItem_Click (отправитель объекта, EventArgs е) { this.Closing - = form1_closing; this.Close(); } –

+0

Это кнопка, которая закроет форму –

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

Он хочет не закрывать большую часть времени, но иметь метод, который позволяет ему фактически закрыть его. Позволяя ему быть фактически закрытым, все время решает эту проблему, но не решает другого. – Servy

+0

ой, предпринял вторую попытку - возможно, не лучше другое решение, но оставить его, если это не так. –

 Смежные вопросы

  • Нет связанных вопросов^_^