我有一个基类和一个派生类。 基类有一个带有虚拟保护按钮单击方法的简单按钮。
我正在使用ovverride关键字(不使用new,因为我希望派生类中的buttonclick方法覆盖基类buttonclick方法)
但是,派生类buttonclick方法中的代码执行两次而不是一次
以下是代码示例
在基类中:
this.ok.Click += new System.EventHandler(this.ok_Click);
protected virtual void ok_Click(object sender, EventArgs e)
{
MessageBox.Show("From the Base class");
}
在派生类中:
this.ok.Click += new System.EventHandler(this.ok_Click);
protected override void ok_Click(object sender, EventArgs e)
{
MessageBox.Show("From the Derived class");
}
答案 0 :(得分:6)
你还没有说实际上调用buttonclick
方法的是什么,但我怀疑它是一个事件处理程序...我怀疑你在子类中都订阅基类构造函数。不要这样做 - 你只需要订阅一次。
(如果情况并非如此,请展示一个简短但完整的例子。)