2015-05-06 3 views
0

Я пытаюсь создать анонимный метод обработки события объекта PrintDocument.Прямая функция создания при определении метода

Вот что я пробовал:

printDocument1.PrintPage += delegate 
{ 
    // define method 
} 

То, что я хочу сделать что-то вроде этого:

printDocument1.PrintPage += new PrintPageEventHandler 
    (object sender, System.Drawing.Printing.PrintPageEventArgs e) 
{ 
    // define method 
} 

То, что я хотел бы сделать, это использовать PrintPageEventArgs аргумент e, когда функция вызывается , Это возможно?

+0

Я не понимаю, что вы» повторно прошу. Вместо того, чтобы сообщать нам о решении вашей проблемы и спрашивать нас, как заставить ее работать, почему бы вам не описать проблему, которую вы пытаетесь решить, и мы увидим, можем ли мы предоставить вам рабочее решение. См. Также [Что такое проблема X Y?] (Http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) –

+0

означает, что PrintDocument printDocument1 = new PrintDocument(); printDocument1.PrintPage + = делегат { определить метод } обычно мы можем это делать, , но в методе, я хочу, чтобы захватить его событие е –

ответ

1

Да, вам нужно создать lambda expression следующим образом:

printDocument1.PrintPage += (s, e) => 
{ 
    // Method code goes here 
    // The variable s represents the first parameter, "object sender" 
    // The variable e represents the second parameter, "PrintPageEventArgs e" 
}; 

Это создаст анонимный метод с использованием лямбда-выражения. (s, e) представляют входные параметры в том порядке, в котором они отображаются в делегате.

Если вы используете версию C# до 3,0 и, следовательно, не имеют лямбда-выражения, вы можете сделать это с помощью делегата следующим образом:

printDocument1.PrintPage += delegate(object sender, PrintPageEventArgs e) 
{ 
    // Method code goes here 
}; 
+2

Поскольку вы, кажется, чтобы понять, что ОП говорит о, может вам предложите отредактировать вопрос, чтобы вопрос имел смысл? –

+0

Также обратите внимание, что, хотя у него есть правильная подпись, полученный анонимный метод не совместим с типом с 'PrintPageEventHandler'. –

+0

@RobertHarvey Не могли бы вы рассказать? Почему это не совместимо? –

Смежные вопросы