3

我有这个事件处理程序

Temp.MouseLeftButtonDown += new MouseButtonEventHandler(Temp_MouseLeftButtonDown);

但我想发送一些参数以访问 Temp_MouseLeftButtonDown 函数。我该如何分配它?

4

1 回答 1

5

您不能直接执行此操作,因为事件处理程序只能期望与 MouseButtonEventHandler 兼容的签名。

如果您使用的是 C# 3,最简单的方法是使用 lambda 表达式 - 例如:

Temp.MouseLeftButtonDown +=
   (sender, args) => Temp_MouseLeftButtonDown(sender, args, "extra argument");

这有帮助吗?当然,如果您不需要发送者和事件参数,则不必提供它们。

在 C# 2 中,您可以以相同的方式使用匿名方法。

于 2010-06-08T09:17:11.820 回答