我有一个代码:
public class Layout : UserControl
{
protected void DisplayX_DisplayClicked(object sender, DisplayEventArgs e)
{
CurrentDisplay = (CameraPanel)sender;
}
}
Run Code Online (Sandbox Code Playgroud)
'Layout'是我其他布局的基类.例如,我有一个'Layout1'派生自基类'Layout'.Layout1有一个元素Display01.Display01有一个DisplayClicked事件.我正在尝试通过Visual Studio Designer将DisplayX_DisplayClicked分配给Display01的DisplayClicked事件.
public partial class Layout1 : Layout
{
private CameraPanel Display01;
}
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误:
方法'xxx'不能是事件的方法,因为这个类派生的类已经定义了方法.
如何使用基类中的方法作为派生类的事件处理程序?可能吗 ?如果是这样,怎么样.如果不是,为什么.
Qua*_*ter 11
设计师无法处理,但你可以在代码中做到这一点.在Layout1的构造函数中,只需写:
public Layout1()
{
InitializeComponent();
this.Display01.DisplayClicked += base.DisplayX_DisplayClicked;
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以让设计器生成名为Display01_DisplayClicked的方法,然后将其实现为:
private void Display01_DisplayClicked(object sender, DisplayEventArgs e)
{
base.DisplayX_DisplayClicked(sender, e);
}
Run Code Online (Sandbox Code Playgroud)
这更加冗长,所以我会以第一种方式做到这一点,但它会让设计师意识到该事件有一个处理程序.
归档时间: |
|
查看次数: |
2568 次 |
最近记录: |