| Цитата(1stain @ 15.10.2007, 11:38) | | как заблокировать не знаю, видимо надо мутить через API, но может сойдет e.Cancel = true в обработчике события Form.Closing ? |
да, присвоение e.Cancel = true работает, проверял. но если .Net Framework версии выше первой, то лучше использовать Form.FormClosing, т.к. он более корректно работает. Form.Closing во 2ом фрейворке специально спрятали аттрибутами от Intellisence и Properties Editor.
Добавлено через 12 минут и 12 секунд в таком случае надо делать так:
| Код | //флаг который разрешает форме закрываться bool canClose = false;
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (!canClose) e.Cancel = true;
}
//только по нажатию этой кнопки можно закрываться private void button1_Click(object sender, EventArgs e) { canClose = true; Close(); }
|
можно еще поиграться с параметром e.CloseReason, если например хочешь разрешить пользователю закрывать форму из диспетчера задач, или чтобы форма закрывалась при выгрузки Винды
| Код | if (e.CloseReason != CloseReason.UserClosing) e.Cancel = false;
|
|