Отслеживание закрытия программы winforms

224
01 декабря 2017, 03:03

Нужно, чтобы после нажатия кнопки "закрыть" , программа выполняла код. Я находил решение этой задачи

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
      e.Cancel = true;
      int i = 0;
      while(i < 10)
      {
          Form1 msf = new Form1();
          msf.Show();
      }
}

Но данный код не работает. Как исправить этот код что бы он заработал ?

Answer 1

Чтобы метод срабатывал при закрытии формы мало просто его написать, необходимо установить его в качестве подписчика на событие FormClosing вашей формы.

Это можно сделать несколькими способами, например, можно находясь в дизайнере выделить форму и перейти в окно Properties, в нем открыть события (иконка с молнией) и установить для нужного события метод:

Другой способ - подписаться в коде конструктора формы, для этого перейдите в окно с кодом формы и добавьте строчку в конструкторе (обязательно после InitializeComponent!):

В принципе первый способ генерирует такую же строчку, просто он помещает ее в автогенерируемый файл Form1.Designer.cs в метод InitializeComponent

Answer 2

Выберете в событиях формы событие FormClosing. Активируйте его двойным щелчком ЛКМ. И затем поместите в сгенерированный метод свой код.

READ ALSO
Рандомный спавн приложения winforms c#

Рандомный спавн приложения winforms c#

Как сделать так , что бы приложение рандомно выбирала в какую часть экрана спавниться через код c#-па?

177
Из string в таймер - как?

Из string в таймер - как?

Получаю некую переменную string - она выводится в элементе panel - в ней может храниться текст:

250
Сокеты.Клиент-сервер

Сокеты.Клиент-сервер

Здравствуйте, моя задача реализовать клиент серверное приложениеСервер на С#, клиент на Java(android)

228
Изменение ширины ContentDialog. UWP

Изменение ширины ContentDialog. UWP

В программе создаю contentdialog

221