日期:2014-05-18  浏览次数:20976 次

C#中窗体类的继承问题,如何继承父类窗体的事件呢?
父窗体类:QueryForm,写了事件:

protected void QueryForm_Deactivate(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
protected void QueryForm_Activated(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}


想让派生出的窗体Form1直接就可以具有上面事件中的行为,请问要怎么写呢?在Form1的事件那里找不到QueryForm_Deactivate,也无法直接填入。。直接填入就提示:

方法“QueryForm_Deactivate”不能是事件的方法,因为派生出此类的类已经定义了该方法。

求教各位大大。。

------解决方案--------------------
protected virtual void QueryForm_Deactivate(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
继承中重写
protected override void Form1_Deactivate(object sender, EventArgs e)
{
base.Form1_Deactivate(sender, e);
}

我没测试,可以试一下。
------解决方案--------------------
在父窗体中写个方法,子窗体中调用就可以了