【发布时间】:2011-02-03 08:28:44
【问题描述】:
我想创建一个将事件作为参数的方法,并将 eventHandler 添加到它以正确处理它。像这样:
我有两个事件:
public event EventHandler Click;
public event EventHandler Click2;
现在我想像这样(伪代码)将特定事件传递给我的方法:
public AttachToHandleEvent(EventHandler MyEvent)
{
MyEvent += Item_Click;
}
private void Item_Click(object sender, EventArgs e)
{
MessageBox.Show("lalala");
}
ToolStripMenuItem tool = new ToolStripMenuItem();
AttachToHandleEvent(tool.Click);
有可能吗?
我注意到这段代码运行良好,然后返回我的项目并注意到当我传递在我的类中声明的事件时,它可以工作,但是当我从其他类传递事件时它仍然不起作用。
我得到的是这个错误:
事件 'System.Windows.Forms.ToolStripItem.Click' 只能出现在左侧 += 或 -=
【问题讨论】:
-
@Petar Minchev 我不知道为什么......你是第一个帮助我的人。谢谢。
-
我已经更新了问题以反映我正在处理的问题
-
@tomaszs 查看我的编辑。这是因为之前事件是在调用它的同一个类中声明的。
标签: c# events event-handling delegates