2015-10-09 2 views
0

Когда я нажимаю кнопку «Печать» моя формаC# .Net 3.5 Удаления событие добавлено в PrintDialog, прежде чем добавить новое событие

private void btnPrint_Click(object sender, EventArgs e) 
{ 
    PrintDialog.Document.PrintPage += (pSender, pE) => PrintEvent(pSender, pE, PrintInfo); 
    PrintDialog.Document.Print(); 
} 

PrintDialog является глобальным переменным типом System.windows.forms.PrintDialog. Когда я нажимаю кнопку «Печать» во второй раз, я хочу удалить PrintEvent, добавленную в первый раз, нажав кнопку перед добавлением нового PrintEvent. Как я могу сделать?

+0

Вы просто делаете это неправильно, это событие должно быть подписан, когда вы назначаете свойство Document. Один раз, почти всегда в конструкторе вашего класса Form. –

ответ

0

Чтобы сделать это, необходимо преобразовать лямбда методу:

private void btnPrint_Click(object sender, EventArgs e) 
{ 
    PrintDialog.Document.PrintPage -= Print; 
    PrintDialog.Document.PrintPage += Print; 
    PrintDialog.Document.Print(); 
} 

void Print(object sender, PrintPageEventArgs e) 
(
    //pass info 
    PrintEvent(sender, e, PrintInfo) 
)