назначение аргументов событий - PullRequest
3 голосов
/ 08 июня 2010

У меня есть этот обработчик событий

Temp.MouseLeftButtonDown += new MouseButtonEventHandler(Temp_MouseLeftButtonDown);

, но я хочу отправить некоторый параметр для доступа в функцию Temp_MouseLeftButtonDown.как я могу назначить это ??

1 Ответ

5 голосов
/ 08 июня 2010

Вы не можете сделать это напрямую, потому что обработчик событий может ожидать только совместимую подпись с MouseButtonEventHandler.

Если вы используете C # 3, самый простой подход - использовать лямбда-выражение - что-то вроде:

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

Это помогает? Конечно, если вам не нужны ни аргументы отправителя, ни события, вам не нужно их предоставлять.

В C # 2 вы можете использовать анонимный метод таким же образом.

...