16

当我MyPrintDocument.print()在用 C# 编写的 Windows 应用程序中使用时,会显示一个对话框,用于处理带有取消按钮的 Windows 处理打印例程。我不希望显示此对话框,可以吗?

如果没有,我应该使用哪种方式?我的程序使用热敏打印机。

4

2 回答 2

21

您使用的是哪个PrintController 。

.NET Framework 包括三个派生自PrintController帮助完成常见任务的打印控制器。将StandardPrintController文档打印到打印机。PreviewPrintController生成文档在打印时的预览,并由和PrintPreviewControlPrintPreviewDialog使用。在PrintControllerWithStatusDialog打印过程中提供打印状态对话框。

听起来您正在使用.PrintControllerWithStatusDialog PrintController


警告:我无法验证基本的PrintController行为方式不同。

根据this MSDN Forum Posting,这PrintControllerWithStatusDialog是默认设置:

他建议这样的事情:

MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
于 2012-05-13T14:27:42.307 回答
5

如果您不分配该PrintDocument.PrintController属性,那么您将获得一个默认的打印控制器。它的一个实例PrintControllerWithStatusDialog显示进度对话框、计算页面数并通常通知用户程序由于某种原因没有响应但没有挂起。

只需在表单构造函数中重新分配它。样板代码是:

Public Class Form1
    Public Sub New()
        InitializeComponent()
        PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController
    End Sub
End Class

而且您必须做其他事情来告诉用户打印正在进行中。至少显示一个沙漏光标

于 2012-05-13T14:46:11.940 回答