Статус: Офлайн
Реєстрація: 30.03.2007
Повідом.: 1279
Реєстрація: 30.03.2007
Повідом.: 1279
c# winforms: сворачивание формы в трей вместо закрытия
Хочу сделать так чтобы при закрытии формы нажатием на крестик в бордере форма сворачивалась в трей а не закрывалась. Сделал так:
private void Closing(object sender, FormClosingEventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
e.Cancel = true;
}
Понятное дело, прикрутив обработчик к событию. Но проблема в том что это работает только 1 раз!!! Я закрываю форму, она сворачивается в трей (всё правильно). После этого я её разворачиваю, бла-бла-бла... и в следующий раз при закрытии она уже не сворачивается а полностью закрывается Причем обработчик второй раз уже не выполняется при закрытии формы. Почему так? Есть подозрение что это из-за e.Cancel = true;, наверное каким-то образом оно деактивирует событие FromClosing, так что оно больше не обрабатывается. Но как его вновь активировать после восстановления формы непонятно.
Хочу сделать так чтобы при закрытии формы нажатием на крестик в бордере форма сворачивалась в трей а не закрывалась. Сделал так:
private void Closing(object sender, FormClosingEventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
e.Cancel = true;
}
Понятное дело, прикрутив обработчик к событию. Но проблема в том что это работает только 1 раз!!! Я закрываю форму, она сворачивается в трей (всё правильно). После этого я её разворачиваю, бла-бла-бла... и в следующий раз при закрытии она уже не сворачивается а полностью закрывается Причем обработчик второй раз уже не выполняется при закрытии формы. Почему так? Есть подозрение что это из-за e.Cancel = true;, наверное каким-то образом оно деактивирует событие FromClosing, так что оно больше не обрабатывается. Но как его вновь активировать после восстановления формы непонятно.
