覆盖OnFormclosing方法

时间:2018-04-25 10:14:41

标签: c# class override

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

    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,感谢您的回答,我知道如何添加事件,但是当我在课堂上有代码时应该如何实现?

1 个答案:

答案 0 :(得分:1)

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

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

因为它是表单的事件处理程序,所以通常会从Designer.cs引发它。 因此,您需要做的是在表单关闭时引发事件。 要做到这一点:

  1. 转到表单的属性

  2. 点击活动图标:event icon

  3. 转到“行为”部分,然后双击“FormClosing”:formclosing event

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