Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 04.02.2017
Сообщений: 16
1

Закрытие программы

19.02.2017, 18:28. Показов 3081. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сделал так чтобы при закрытии программы появлялось окно "Вы точно хотите выйти?" и две кнопки на нём "Да" и "Нет". Так вот при нажатии на кнопку "Да" всё идет хорошо, программа закрывается, процесс завершается. А вот на кнопку "Нет" приходится нажимать 2 раза, чтобы остаться в приложении.. (то есть я нажимаю "Нет" окно пропадает и мгновенно появляется снова и нужно ещё раз нажать "Нет" и только тогда окно пропадёт) совершенно не понимаю как это исправить

Вот интересующий нас кусок кода:
C#
1
2
3
4
5
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
if (MessageBox.Show("Вы уверены, что хотите выйти?", Application.ProductName, MessageBoxButtons.YesNo) != DialogResult.Yes)
e.Cancel = true;
P.S.: если убрать из кода строку "Application.Exit();" то всё работает нормально (в плане окна с "Да" и "Нет"), но процесс программы не завершается и продолжает "висеть" в недрах диспетчера задач..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2017, 18:28
Ответы с готовыми решениями:

Ввод текста. Закрытие программы. Запуск программы. Введенный ранее текст уже открыт
Здравствуйте. Подскажите, как сделать "Ввод текста. Закрытие программы. Запуск программы....

Закрытие программы
подскажите как отловить отключение программы(нажатие на крестик), а также после этого запустить...

Событие на закрытие программы
У меня есть главная программа на XNA 4.0, которая открывает другую программу Windows Forms (будем...

Закрытие программы с названием
Здраствуйте, у меня появился вопрос, как можно по названию окна узнать ID процесса и после этого...

6
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
19.02.2017, 18:43 2
Так, наверное, надо.
C#
1
2
3
4
if (MessageBox.Show("Вы уверены, что хотите выйти?", Application.ProductName, MessageBoxButtons.YesNo) != DialogResult.Yes)
    e.Cancel = true;
else
    Application.Exit();
1
0 / 0 / 1
Регистрация: 04.02.2017
Сообщений: 16
19.02.2017, 18:45  [ТС] 3
Я в итоге сделал через "Environment.Exit(1);"
и поменял там Yes на No (у DialogResult)
Вот результат:
C#
1
2
3
4
5
6
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {            
            //Application.Exit();
            if (MessageBox.Show("Вы уверены, что хотите выйти?", Application.ProductName, MessageBoxButtons.YesNo) != DialogResult.No)
            Environment.Exit(1);
            e.Cancel = true;
Всё работает как надо. Довольный как удав сижу тут) хах
0
Администратор
Эксперт .NET
17027 / 13379 / 5218
Регистрация: 17.03.2014
Сообщений: 27,360
Записей в блоге: 1
19.02.2017, 19:11 4
Pentagon_, ни Environment.Exit() ни Application.Exit() здесь не нужны. Событие FormClosing вызыается перед закрытием формы давая возможность отменить закрытие. Если не отменять закрытие, то форма и так закроется. Если это главная форма, то за ней закроется и программа. Поэтому код должен выглядеть так
C#
1
2
3
4
5
6
7
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (MessageBox.Show("Вы уверены, что хотите выйти?", Application.ProductName, MessageBoxButtons.YesNo) != DialogResult.Yes)
    {
        e.Cancel = true;
    }
}
0
0 / 0 / 1
Регистрация: 04.02.2017
Сообщений: 16
19.02.2017, 19:37  [ТС] 5
OwenGlendower, Форма то закрывается, а процесс не завершается
0
Администратор
Эксперт .NET
17027 / 13379 / 5218
Регистрация: 17.03.2014
Сообщений: 27,360
Записей в блоге: 1
19.02.2017, 19:39 6
Pentagon_, значит ты накосячил в другом месте. По хорошему нужно найти этот косяк, но как быстрый обход этой проблемы сгодится и вызов Exit.
0
0 / 0 / 1
Регистрация: 04.02.2017
Сообщений: 16
19.02.2017, 19:47  [ТС] 7
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Pentagon_, значит ты накосячил в другом месте.
Хм.. дела.. ну я навряд ли уже теперь найду ошибку.. так что пока оставлю так.. ("работает - не трогай!")
0
19.02.2017, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2017, 19:47
Помогаю со студенческими работами здесь

Принудительное закрытие программы
Всем доброго времени суток!!! Есть многопользовательские приложение, которое подключается к Бд...

Закрытие программы при закрытии explorer
Рад приветствовать тех, кто зашёл на данную тему, ведь у меня возникла одна не большая проблема....

Закрытие консоли во время выполнения программы
Консоль закрывается до того, как выполнится вся программа. В коде написаны комментарии и место,...

Закрытие программы, если правильно введены данные
Как сделать, если я авторизовался, меня должно перекидывать на форму 2, а если не правильно данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru