Переопределение метода OnFormclosing - PullRequest
0 голосов
/ 25 апреля 2018

Я исхожу из этой ссылки
Мне нужно сделать то же самое, но мне нужно поместить этот код в класс.вот код из моего класса.

    public class MyForm : Form
{

    protected override void OnFormClosing(FormClosingEventArgs e)
    {
        base.OnFormClosing(e);

        if (e.CloseReason == CloseReason.WindowsShutDown) return;

        // Confirm user wants to close
        switch (MessageBox.Show(this, "Are you sure you want to close?", "Closing", MessageBoxButtons.YesNo))
        {
            case DialogResult.No:
                e.Cancel = true;
                break;
            default:
                break;
        }
    }


}

Когда я удаляю эту функцию из кода дизайна формы и помещаю ее в класс, ее вид компилятора не распознает ее.Я думаю, что проблема не в коде

Обновление: Леннар, спасибо за ответ, я знаю, как добавить событие, но как этого добиться, когда у меня есть код в классе?

1 Ответ

0 голосов
/ 25 апреля 2018

Этот метод является обработчиком событий:

protected override void OnFormClosing(FormClosingEventArgs e)
{
    //code here
}

Поскольку это обработчик событий для формы, он обычно вызывается из Designer.cs. Так что вам нужно поднять событие, когда форма закрывается. Для этого:

  1. Перейти к свойствам вашей формы

  2. Нажмите на значок события: event icon

  3. Перейдите в раздел «Поведение» и дважды щелкните FormClosing: formclosing event

После этого вы должны увидеть заглушку для обработчика событий в своем коде, в которую вы можете поместить желаемое тело функции, и ваш код должен работать.

...