我有这个事件处理程序:
Temp.MouseLeftButtonDown += new MouseButtonEventHandler(Temp_MouseLeftButtonDown);
但是我想要传递一些参数到Temp_MouseLeftButtonDown函数中以便访问。我该如何分配它?
我有这个事件处理程序:
Temp.MouseLeftButtonDown += new MouseButtonEventHandler(Temp_MouseLeftButtonDown);
但是我想要传递一些参数到Temp_MouseLeftButtonDown函数中以便访问。我该如何分配它?
您不能直接这样做,因为事件处理程序只能期望与MouseButtonEventHandler兼容的签名。
如果您正在使用C# 3,则最简单的方法是使用lambda表达式 - 类似于:
Temp.MouseLeftButtonDown +=
(sender, args) => Temp_MouseLeftButtonDown(sender, args, "extra argument");
这有帮助吗?当然,如果您不需要发送方和事件参数,您不必提供它们。
在C# 2中,您可以以同样的方式使用匿名方法。