我有一个表单,其中包含一个自定义控件。该控件具有 ItemChanged 事件的事件处理程序。
private void ncNomSimple_ItemChanged(object sender, EventArgs e)
{
some code..
}
我继承了这个表单,因此在我的新表单中有控件和事件,但是我想要在新表单中调用另一个事件处理程序来处理该事件,而不是使用上述的事件处理程序。如何实现这一点?
我有一个表单,其中包含一个自定义控件。该控件具有 ItemChanged 事件的事件处理程序。
private void ncNomSimple_ItemChanged(object sender, EventArgs e)
{
some code..
}
我继承了这个表单,因此在我的新表单中有控件和事件,但是我想要在新表单中调用另一个事件处理程序来处理该事件,而不是使用上述的事件处理程序。如何实现这一点?
在基类中:
protected virtual void ncNomSimple_ItemChanged(object sender, EventArgs e)
{
MessageBox.Show("called from Test class");
}
在派生类中:
protected override void ncNomSimple_ItemChanged(object sender, EventArgs e)
{
MessageBox.Show("called from Test1 class");
}
将事件处理程序从private
更改为protected virtual
,并在继承的表单中覆盖它。
private virtual
作为私有成员是没有意义的(而且是语法错误),因为私有成员对派生类是隐藏的。 - Jamiec