Как полностью закрыть приложение windows forms

Window. Close Метод

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Вручную закрывает окно Window.

Примеры

В следующем примере показано меню » Файл | Выход » для явного вызова Close.

Комментарии

Можно Window закрыть с помощью одного из нескольких хорошо известных системных механизмов, расположенных в заголовке строки, в том числе:

Системное меню | Закрыть.

Кнопка «Закрыть «.

Можно Window также закрыть с помощью одного из нескольких хорошо известных механизмов в клиентской области, предоставляемых разработчиками, в том числе:

Файл | выход из главного окна.

Файл | Кнопку «Закрыть » или » Закрыть » в дочернем окне.

Кнопки «ОК » и «Отмена» в диалоговом окне также предоставляются разработчиком, хотя, скорее всего, заданы DialogResult, что автоматически закрывает окно, открытое путем вызова ShowDialog.

Эти механизмы требуют явного вызова Close для закрытия окна.

Если окно, открытое путем вызова ShowDialog, и с Button его IsCancel свойством, установленным в значение true, автоматически закроется при нажатии кнопки или нажатии клавиши ESC. Если окно было открыто с помощью Show, но Close должно быть явно вызвано, например из Click обработчика событий для Button.

Закрытие окна приводит к возникновению Closing события. Closing Если событие не отменено, происходит следующее:

Объект Window удаляется Application.Windows (если Application объект существует).

Он Window удаляется от владельца Window , если отношение владельца и владельца было установлено до отображения владельца Window и после открытия владельца Window .

Неуправляемые ресурсы, созданные с Window помощью этого ресурса, удаляются.

Если ShowDialog был вызван для отображения Window, ShowDialog возвращается.

Window Закрытие окна приводит к закрытию всех окон, принадлежащих ему. Кроме того, закрытие может Window привести к остановке работы приложения в зависимости от того, как Application.ShutdownMode задано свойство.

Этот метод нельзя вызывать, если окно размещено в браузере.

Источник

Application. Exit Method

Definition

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.

Overloads

Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.

Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.

READ  Как обновить virtualbox windows

Informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed.

Examples

The following code example lists numbers in a list box on a form. Each time you click button1 , the application adds another number to the list.

The Main method calls Run to start the application, which creates the form, listBox1 , and button1 . When the user clicks button1 , the button1_Click method adds numbers one to three to the list box, and displays a MessageBox. If the user clicks No on the MessageBox, the button1_Click method adds another number to the list. If the user clicks Yes, the application calls Exit, to process all remaining messages in the queue and then to quit.

The example requires that listBox1 and button1 have been instantiated and placed on a form.

Remarks

The Exit method stops all running message loops on all threads and closes all windows of the application. This method does not necessarily force the application to exit. The Exit method is typically called from within a message loop, and forces Run to return. To exit a message loop for the current thread only, call ExitThread.

Exit raises the following events and performs the associated conditional actions:

A FormClosing event is raised for every form represented by the OpenForms property. This event can be canceled by setting the Cancel property of their FormClosingEventArgs parameter to true .

If one of more of the handlers cancels the event, then Exit returns without further action. Otherwise, a FormClosed event is raised for every open form, then all running message loops and forms are closed.

The Exit method does not raise the Closed and Closing events, which are obsolete as of .NET Framework 2.0.

Источник

Application. Exit Метод

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

Перегрузки

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

Сообщает всем средствам переноса сообщений, что они должны завершить работу, а затем закрывает все окна приложения после обработки сообщений.

READ  Как обновить windows 7 sp1 до windows 7 максимальная

Примеры

В следующем примере кода перечислены номера в списке в форме. При каждом щелчке button1 приложение добавляет еще одно число в список.

Метод Main вызывает Run приложение, которое создает форму listBox1 и button1 . Когда пользователь щелкает button1 , button1_Click метод добавляет числа от 1 до трех в список и отображает значение MessageBox. Если пользователь нажимает кнопку «Нет » MessageBoxв списке, button1_Click метод добавляет в список еще одно число. Если пользователь нажимает кнопку «Да«, приложение вызывает Exit, чтобы обработать все оставшиеся сообщения в очереди, а затем выйти.

В этом примере требуется listBox1 создать экземпляр и button1 поместить его в форму.

Комментарии

Метод Exit останавливает все выполняемые циклы сообщений во всех потоках и закрывает все окна приложения. Этот метод не обязательно принудительно завершает работу приложения. Метод Exit обычно вызывается из цикла сообщений и принудительно Run возвращается. Чтобы выйти из цикла сообщений только для текущего потока, вызовите ExitThread.

Exit вызывает следующие события и выполняет связанные условные действия:

Событие FormClosing вызывается для каждой формы, представленной свойством OpenForms . Это событие можно отменить, задав Cancel для свойства параметра FormClosingEventArgs значение true .

Если один из нескольких обработчиков отменяет событие, возвращается Exit без дальнейших действий. В противном случае событие создается для каждой FormClosed открытой формы, после чего все выполняемые циклы сообщений и формы закрываются.

Метод Exit не вызывает Closed события и Closing события, которые устарели по состоянию на платформа .NET Framework 2.0.

Источник

C# Как грамотно закрыть Form?

Здравствуйте, коллеги! Не думал, что будут проблемы с такими вот вещами, но тем не менее. Вот в чем суть проблемы. Разрабатываю программу, в которой из главной Form1, при нажатии на копку я открываю Form2.

Далее уже на Form2 я выполняю код, который заполняет таблицу на Form1, при этом я вывожу данные в таблицу, а затем мне нужно закрыть Form2 сразу.

Так вот в чем проблема: Form2 она то вроде закрывается, но по факту только скрывается. По долгу своей работы, мое приложение должно работать сутками в фоне и получается, что очередной раз пользователь открывает Form2, нажимает там на кнопку, таблица на Form1 заполняется, но Form2 не закрывается, а сворачивается. И так у меня плодятся окна Form1 и Form2 до бесконечности. Как можно это грамотно обыграть? P.s. Пробовал и Form2.ActiveForm.Close() и this.Close() ничего не помогает. Может логическая ошибка где? Помогите, пожалуйста!

3 ответа 3

После закрытия формы через Close() вызовите в первой форме у второй Dispose() и будет вам счастье. Иногда достаточно почитать официальные мануалы.

Два условия, когда форма не удаляется при вызове Close это когда (1) это часть приложения многодокументного интерфейса (MDI) и форма не является видимой; и (2) форма была отображена посредством ShowDialog.

Пример обработчика события по нажатию кнопки в Form2 с изменением свойств объектов формы Form1.

READ  Как выключить режим повышенной безопасности брандмауэра windows 10

Пример более правильного вызова/создания дочерней формы.

Настоятельно рекомендую иметь ввиду контроль наличия (существования) окна, если вы используете окно без привязки к основному. Т.е. если дочерние окна можно убрать в фон или на задний план, то вы обязательно его потеряете.

Имена форм для Application.OpenForms[«AnyFormName»]; находятся в свойствах самих форм в переменной Name . Изменить (переопределять не стоит) можно в классе *.Designer.cs .

Если вам необходим доступ к методам формы, то необходимо создавать для них делегаты методов перед использованием.

Источник

Window. Close Метод

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Вручную закрывает окно Window.

Примеры

В следующем примере показано меню » Файл | Выход » для явного вызова Close.

Комментарии

Можно Window закрыть с помощью одного из нескольких хорошо известных системных механизмов, расположенных в заголовке строки, в том числе:

Системное меню | Закрыть.

Кнопка «Закрыть «.

Можно Window также закрыть с помощью одного из нескольких хорошо известных механизмов в клиентской области, предоставляемых разработчиками, в том числе:

Файл | выход из главного окна.

Файл | Кнопку «Закрыть » или » Закрыть » в дочернем окне.

Кнопки «ОК » и «Отмена» в диалоговом окне также предоставляются разработчиком, хотя, скорее всего, заданы DialogResult, что автоматически закрывает окно, открытое путем вызова ShowDialog.

Эти механизмы требуют явного вызова Close для закрытия окна.

Если окно, открытое путем вызова ShowDialog, и с Button его IsCancel свойством, установленным в значение true, автоматически закроется при нажатии кнопки или нажатии клавиши ESC. Если окно было открыто с помощью Show, но Close должно быть явно вызвано, например из Click обработчика событий для Button.

Закрытие окна приводит к возникновению Closing события. Closing Если событие не отменено, происходит следующее:

Объект Window удаляется Application.Windows (если Application объект существует).

Он Window удаляется от владельца Window , если отношение владельца и владельца было установлено до отображения владельца Window и после открытия владельца Window .

Неуправляемые ресурсы, созданные с Window помощью этого ресурса, удаляются.

Если ShowDialog был вызван для отображения Window, ShowDialog возвращается.

Window Закрытие окна приводит к закрытию всех окон, принадлежащих ему. Кроме того, закрытие может Window привести к остановке работы приложения в зависимости от того, как Application.ShutdownMode задано свойство.

Этот метод нельзя вызывать, если окно размещено в браузере.

Источник