C# 重写OnFormclosing方法

C# 重写OnFormclosing方法,c#,class,overriding,C#,Class,Overriding,我来自这里 我需要做同样的事情,但我需要把代码放在课堂上。 这是我班上的代码 public class MyForm : Form { protected override void OnFormClosing(FormClosingEventArgs e) { base.OnFormClosing(e); if (e.CloseReason == CloseReason.WindowsShutDown) return;

我来自这里 我需要做同样的事情,但我需要把代码放在课堂上。 这是我班上的代码

    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;
        }
    }


}
当我从表单设计代码中删除此函数并将其放入类中时,它看起来好像编译器无法识别它。我认为问题不在代码中

更新:
Lennar,谢谢你的回答,我知道如何添加事件,但是当我在类中有代码时应该如何实现它?

此方法是一个事件处理程序:

protected override void OnFormClosing(FormClosingEventArgs e)
{
    //code here
}
因为它是表单的事件处理程序,所以通常会从Designer.cs引发它。 因此,您需要做的是在窗体关闭时引发事件。 为此:

转到窗体的属性

单击事件图标:

转到“行为”部分,双击FormClosing:


完成此操作后,您应该会在代码中看到事件处理程序的存根,您可以在其中放置所需的函数体,并且代码应该可以工作。

代码不起作用,您的意思是什么?您期望发生什么以及实际发生了什么?您可能希望至少在代码之前删除base.onFormClosing。。但是,有什么事情不是你想要的呢?在尝试修复它时,你发现了什么?你需要使用“+=”注册事件。请参阅我的双表单项目: