我有一个代码:
public class Layout : UserControl
{
protected void DisplayX_DisplayClicked(object sender, DisplayEventArgs e)
{
CurrentDisplay = (CameraPanel)sender;
}
}
“布局”是我其他布局的基类。例如,我有一个从基类“Layout”派生的“Layout1”。 Layout1 有一个元素 Display01。 Display01 有一个 DisplayClicked 事件。我试图通过 Visual Studio Designer 将 DisplayX_DisplayClicked 分配给 Display01 的 DisplayClicked 事件。
public partial class Layout1 : Layout
{
private CameraPanel Display01;
}
它给了我一个错误:
方法“xxx”不能是事件的方法,因为该类派生的类已经定义了该方法。
如何使用基类中的方法作为派生类的事件处理程序?是否可以 ?如果是这样,怎么办。如果没有,为什么。
设计师无法处理这个问题,但你可以用代码来完成。在 Layout1 的构造函数中,只需编写:
public Layout1()
{
InitializeComponent();
this.Display01.DisplayClicked += base.DisplayX_DisplayClicked;
}
或者,您可以让设计器生成一个名为 Display01_DisplayClicked 的方法,然后将其实现为:
private void Display01_DisplayClicked(object sender, DisplayEventArgs e)
{
base.DisplayX_DisplayClicked(sender, e);
}
这要冗长得多,所以我会用第一种方法,但它会让设计者知道有一个针对该事件的处理程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)