Как сделать "Вы уверены, что хотите закрыть приложение?"

Рейтинг: 3Ответов: 2Опубликовано: 07.07.2011

Я знаю как создать MessageBox и все такое. Но как сделать так, чтобы по нажатию "Нет" форма не закрылась? И чтобы это все работало при нажатии на "красный крестик", то есть стандартную кнопку управления окном.

Ответы

▲ 10Принят

Нужно обрабатывать событие "FormClosing". При нажатии на красный крестик система посылает сообщение, что окно хотят закрыть. Если в обработчике сего события не отменят оное действие, окно закроется, посылая следующее сообщение "FormClosed", где уже ничего отменить нельзя.

Отменяется закрытие примерно так:

private void fMain_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}

Ну а сообщение с вопросом встроить сюда - пара строк =)

▲ 8
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (MessageBox.Show("Закрыть?", "Message", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
        e.Cancel = true;
    else
        e.Cancel = false;
}