当我在用C#编写的Windows应用程序中使用MyPrintDocument.print()
时,会出现一个带有取消按钮的Windows处理打印例程的对话框。我不希望显示此对话框,是否可能?
如果没有,我应该使用哪种方式?我的程序使用热敏打印机。
答案 0 :(得分:18)
您使用的是PrintController。
.NET Framework包含三个源自
PrintController
的打印控制器,可帮助您完成常见任务。StandardPrintController
将文档打印到打印机。PreviewPrintController
生成预览文档在打印时的外观,并由PrintPreviewControl
和PrintPreviewDialog
类使用。PrintControllerWithStatusDialog
在打印过程中提供打印状态对话框。
听起来您使用的是PrintControllerWithStatusDialog
PrintController
。
警告:我无法确认基本PrintController
的行为方式不同。
根据此MSDN Forum Posting,PrintControllerWithStatusDialog
是默认值:
他建议这样的事情:
MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
答案 1 :(得分:4)
如果您没有分配PrintDocument.PrintController
属性,那么您将获得默认的打印控制器。 PrintControllerWithStatusDialog
的一个实例,它显示进度对话框,计算页面并通常告知用户程序由于某种原因没有响应但是没有挂起。
只需在表单构造函数中重新分配它。 Boilerplate代码是:
Public Class Form1
Public Sub New()
InitializeComponent()
PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController
End Sub
End Class
您必须做一些其他事情来告诉用户打印正在进行中。至少显示hourglass cursor。