Как предотвратить закрытие скрытой формы в C#

Я хочу предотвратить закрытие формы в некоторых случаях. Я знаю использование OnFormClosing, но когда форма скрыта (Visible==false), метод OnFormClosing не вызывается. Есть ли способ перехватить закрытие формы в этом случае?

Редактировать (некоторые подробности): форма является дочерней в MdiParent, должна оставаться невидимой в фоновом режиме и ждать вызовов из другого потока (от Invoke).

MdiParent закрывает все дочерние окна, когда пользователь "отключается", в этом случае приведенная выше форма должна оставаться открытой, но невидимой и все еще ожидающей звонков. Когда MidParent закрывается, все формы должны закрываться.

Edit2 (нет решения?): Кажется, что нет никакого решения для этого. Мой обходной путь теперь состоит в том, чтобы исключить мою не закрывающуюся форму в коде MdiParent, который закрывает все другие формы.

1 ответ

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
                // This will cancel the event
                e.Cancel = true;
}

Независимо от причины, это эффективно остановит закрытие формы.

Другие вопросы по тегам