Кнопка выхода не работает-C#

#c# #button

#c# #кнопка

Вопрос:

Я работаю над созданием программы для управления файлами. У меня есть кнопка file в верхнем левом углу, а в выпадающем меню есть кнопка exit. Вот фрагмент кода:

     private void  exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }
  

Я перепробовал всевозможные команды для выхода из программы, но пока ничего не сработало. Кажется, это очень простой код, и я в точности следовал инструкциям с нескольких веб-сайтов. Если бы вы могли дать мне какие-либо идеи относительно того, почему у меня возникла эта проблема, я был бы очень признателен. Я использую Visual Studio Express 2013.

Комментарии:

1. Можете ли вы добавить свой код кнопки?

2. Вы просто скопировали вставленный код? Обработчик события должен быть зарегистрирован в элементе меню и кнопке. Самый простой способ зарегистрировать обработчик события click — это дважды щелкнуть по элементу меню или кнопке, а затем запустить приложение. Оператор Exit(); в сгенерированной функции.

Ответ №1:

Если это приложение WPF, то используйте

 Application.Current.Shutdown();
  

Ответ №2:

Правильным методом было бы применение.Выход (). Это завершает все циклы обмена сообщениями и закрывает все окна, тем самым предоставляя вашим формам возможность выполнить их код очистки (в Form.OnClose etc).

Environment.Exit это просто остановило бы процесс. Если в какой-либо форме есть, например, несохраненные изменения, у нее не будет никаких шансов спросить пользователя, хочет ли он их сохранить. Также ресурсы (подключения к базе данных и т.д.) Не могли быть освобождены должным образом, файлы могли не быть сброшены и т.д.

если вы используете многопоточность, Application.Exit() ваши потоки не будут завершены (и, таким образом, приложение будет продолжать работать в фоновом режиме, даже если графический интерфейс будет завершен). Поэтому вы должны принять меры для прекращения работы ваших потоков либо в основной функции (т.Е. Program.Main() ), либо в OnClose событии вашей основной формы.

Ответ №3:

Вы можете определить, работает ли система.Windows.Формы.Приложение.Запуск был вызван путем проверки системы.Windows.Формы.Приложение.Свойство MessageLoop. Если true, то был вызван запуск, и вы можете предположить, что приложение WinForms выполняется следующим образом.

 If (System.Windows.Forms.Application.MessageLoop)
{
   // Use this since we are a WinForms app
   System.Windows.Forms.Application.Exit()
}
Else
{
   // Use this since we are a console app
   System.Environment.Exit(1)
}
  

См.:http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

или

 Environment.Exit(0);