FormClosing не вызывается при нажатии Big Red X в углу - PullRequest
2 голосов
/ 16 августа 2011

Я нашел это:

Кнопка с крестиком в правом верхнем углу формы, как поймать это событие @ C #

Что говорит, что я должен использовать событие FormClosing, чтобы узнать, когда окно закрывается из-за щелчка по X.

Но мой код события никогда не вызывается:

private void MainWin_FormClosing(Object sender, FormClosingEventArgs e)
{
    m_closeThread = true;
    Application.Exit();
}

Я, должно быть, упускаю что-то простое, но я не знаю, что.

Ответы [ 2 ]

8 голосов
/ 16 августа 2011

Вы должны либо подписаться на событие как:

this.FormClosing += this.MainWin_FormClosing;

в конструкторе формы (или где-то), либо использовать:

override void OnFormClosing(FormClosingEventArgs e)
{
    m_closeThread = true;
    Application.Exit();
}
1 голос
/ 16 августа 2011

Убедитесь, что вы правильно подписываетесь на событие FormClosing .

Вы должны иметь в своем диалоговом окне MainWin (обычно в конструкторе) что-то вроде этого:

this.FormClosing += new FormClosingEventHandler(MainWin_FormClosing);

Надеюсь, это поможет.

...