搜索语法但无法找到任何内容。我有一个在我的主文件中定义的事件处理程序,我想将它附加到我在另一个类中创建的元素。我知道在类中添加事件处理程序的语法是
element.PreviewMouseDown += EventHandlerName;
但我不确定在单独的类中添加处理程序的语法是什么。我试过了
element.PreviewMouseDown += MainWindow.EventHandlerName;
但这是无效的。任何帮助表示赞赏
答案 0 :(得分:1)
您需要对要接收处理程序的实例的引用。您不能引用类本身(除非处理程序是静态方法):
void Main()
{
var a = new A();
var b = new B();
a.Event += b.Handler; // reference to instance method
}
class A
{
public event EventHandler Event;
}
class B
{
public void Handler(object sender, EventArgs args)
{
}
}
如果你有一个静态处理程序,它就像它的样子:
void Main()
{
var a = new A();
a.Event += B.Handler; // reference to a static method
}
class A
{
public event EventHandler Event;
}
class B
{
public static void Handler(object sender, EventArgs args)
{
}
}