Re[2]: Событие OnClose()
От: vhonest  
Дата: 09.04.06 07:35
Оценка:
Здравствуйте, 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);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.