如何跳过printDocument.print()中的打印对话框并直接打印页面?

ham*_*mze 13 .net c# winapp

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

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

Mar*_*all 19

你在使用哪个PrintController.

.NET Framework包含三个打印控制器,这些打印控制器源自PrintController帮助完成常见任务.将StandardPrintController文档打印到打印机.在PreviewPrintController生成的文档的外观打印,并使用的时候就像一个预览PrintPreviewControlPrintPreviewDialog类.该PrintControllerWithStatusDialog规定在打印过程中的打印状态对话框.

听起来你正在使用.PrintControllerWithStatusDialog PrintController


警告:我无法证实基本PrintController行为不一样.

根据这个MSDN论坛发布PrintControllerWithStatusDialog是默认值:

他建议这样的事情:

MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
Run Code Online (Sandbox Code Playgroud)


Han*_*ant 5

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

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

Public Class Form1
    Public Sub New()
        InitializeComponent()
        PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

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