【问题标题】:C# .Net 3.5 Remove Event added to PrintDialog before add new eventC# .Net 3.5 在添加新事件之前删除添加到 PrintDialog 的事件
【发布时间】:2015-10-09 10:59:44
【问题描述】:

当我点击“打印”按钮时

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。我该怎么办?

【问题讨论】:

  • 您只是做错了,分配 Document 属性时需要订阅该事件。只有一次,几乎总是在 Form 类的构造函数中。

标签: c# printdialog


【解决方案1】:

为此,您必须将 lambda 转换为方法:

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)
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多