Здравствуйте, Grog13, Вы писали:
G>Здравствуйте, <Аноним>, Вы писали:
А>>Как на C# сделать следующую вещь.Есть формочка. При ее закрытии надо вызвать MessageBox и в зависимости от того нажата ли кнопка ОК или Cancel соттветственно закрыть окно или оставить его как есть.
G>переопредели OnClosing формы
а не проще подписаться на событие Closing?
G>и там выводи MessageBox и анализируй его DialogResult
G>Вот у меня в одной форме это примерно так выглядит:
G>G> protected override void OnClosing(CancelEventArgs e)
G> {
G> if (!_issaved)
G> {
G> DialogResult res = MessageBox.Show("Запись не сохранена!\nСохранить ее в черновики?", "Сохранить изменения?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
G> switch (res)
G> {
G> case DialogResult.Yes: this.DialogResult = DialogResult.OK; break;
G> case DialogResult.No: this.DialogResult = DialogResult.Ignore; break;
G> case DialogResult.Cancel: e.Cancel = true; break;
G> }
G> }
G> }
G>
Я бы сделал все то же самое в обработчике события Closing.
А если уж переопределять OnClosing, то надо бы вызывать
base.OnClosing(e);