“”对象“在覆盖系统方法时没有”OnFormClosing“错误的定义

时间:2017-09-26 13:40:43

标签: c# winforms

我只是试图覆盖“OnFormClosing()”方法,以便在关闭应用程序之前记录一个简单的字符串。

protected override void OnFormClosing(FormClosingEventArgs e)
    {
        log.Info("File closed");
        base.OnFormClosing(e); 
    }

为什么会出现此错误

  

“object”没有“OnFormClosing”的定义

上的

base.OnFormClosing(e);

我试图在我的static class Programm{}中实现这个,但即使在我项目中的每个其他公共类中,如果我尝试在那里实现这个方法,我也会得到同样的错误。

知道可能是什么问题吗?

1 个答案:

答案 0 :(得分:0)

问题出现是因为类Program(您尝试覆盖此方法的地方)继承自类object而不是类Form。类对象没有OnFormClosing方法。如果查看类的声明,它不会显示任何继承

static class Program //<- here is no inheritance specified!
{

您需要选择一个Windows Form类并将代码放在那里。因为创建的winform将继承自类Forms

public partial class Form1 : Form
{