Reputation: 7331
When I use MyPrintDocument.print()
in a Windows application written in C#, a dialog is shown for the Windows processing print routine with a cancel button. I don't want this dialog shown, is it possible?
If not, which way should I use? My program uses a thermal printer.
Upvotes: 16
Views: 22528
Reputation: 942267
If you don't assign the PrintDocument.PrintController
property then you get a default print controller. An instance of PrintControllerWithStatusDialog
which displays the progress dialog, counting pages and generally informing the user that the program is unresponsive for a reason but otherwise not hung.
Simply reassign it in the form constructor. Boilerplate code is:
Public Class Form1
Public Sub New()
InitializeComponent()
PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController
End Sub
End Class
And you'll have to do something else to tell the user that a print is in progress. At least display an hourglass cursor.
Upvotes: 5
Reputation: 54562
Which PrintController are you using.
The .NET Framework includes three print controllers that are derived from
PrintController
that help accomplish common tasks. TheStandardPrintController
prints a document to a printer. ThePreviewPrintController
generates a preview of what the document will look like when printed and is used by thePrintPreviewControl
andPrintPreviewDialog
classes. ThePrintControllerWithStatusDialog
provides a printing status dialog during the printing process.
It sounds like you are using the PrintControllerWithStatusDialog
PrintController
.
Caveat: I am not in a position to verify that the basic PrintController
doesn't act the same way.
According to this MSDN Forum Posting the PrintControllerWithStatusDialog
is the default:
He suggests something like this:
MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
Upvotes: 23