C# 显示用户打印预览,并在用户打印时执行代码

C# 显示用户打印预览,并在用户打印时执行代码,c#,.net,winforms,bitmap,print-preview,C#,.net,Winforms,Bitmap,Print Preview,我有一个位图,我想让用户在打印前看到它。所以我为他打开打印预览,如果用户决定打印,我想执行一些代码 问题是,printPreviewDialog不会返回答案。这可能是因为它只有一个打印按钮和关闭按钮,但没有打印和关闭按钮,所以我可以知道用户决定打印 如果你有解决办法,我会很高兴,如果你认为这不是最好的办法,请告诉我 代码: 订阅要发送到printPreviewDialog控件的文档的EndPrint事件,然后在其PrintEventArgs参数中检查PrintAction 例如: private

我有一个位图,我想让用户在打印前看到它。所以我为他打开打印预览,如果用户决定打印,我想执行一些代码

问题是,
printPreviewDialog
不会返回答案。这可能是因为它只有一个打印按钮和关闭按钮,但没有打印和关闭按钮,所以我可以知道用户决定打印

如果你有解决办法,我会很高兴,如果你认为这不是最好的办法,请告诉我

代码:


订阅要发送到
printPreviewDialog
控件的文档的
EndPrint
事件,然后在其
PrintEventArgs
参数中检查
PrintAction

例如:

private void buttonPrintPreview_Click(object sender, EventArgs e)
    {
        PrintPreviewDialog printDialog = new PrintPreviewDialog();
        printDialog.Document = yourDocument;
        yourDocument.EndPrint += doc_EndPrint; // Subscribe to EndPrint event of your document here.
        printDialog.ShowDialog();
    }

    void doc_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
    {
        if (e.PrintAction == System.Drawing.Printing.PrintAction.PrintToPrinter)
        {
            // Printing to the printer!
        }
        else if (e.PrintAction == System.Drawing.Printing.PrintAction.PrintToPreview)
        {
            // Printing to the preview dialog!
        }
    }

你能提供你尝试过的代码吗?是的,我刚刚编辑了我的问题
private void buttonPrintPreview_Click(object sender, EventArgs e)
    {
        PrintPreviewDialog printDialog = new PrintPreviewDialog();
        printDialog.Document = yourDocument;
        yourDocument.EndPrint += doc_EndPrint; // Subscribe to EndPrint event of your document here.
        printDialog.ShowDialog();
    }

    void doc_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
    {
        if (e.PrintAction == System.Drawing.Printing.PrintAction.PrintToPrinter)
        {
            // Printing to the printer!
        }
        else if (e.PrintAction == System.Drawing.Printing.PrintAction.PrintToPreview)
        {
            // Printing to the preview dialog!
        }
    }