C#で記述されたWindowsアプリケーションで使用するMyPrintDocument.print()と、キャンセルボタンが付いたWindows処理印刷ルーチンのダイアログが表示されます。このダイアログを表示したくないのですが、可能ですか?
そうでない場合は、どちらの方法を使用すればよいですか?私のプログラムはサーマルプリンターを使用しています。
どのPrintControllerを使用していますか。
.NET Frameworkには、
PrintController一般的なタスクの実行に役立つ3つのプリントコントローラーが含まれています。ドキュメントをプリンタにStandardPrintController印刷します。はPreviewPrintController、印刷時にドキュメントがどのように表示されるかをプレビューし、PrintPreviewControlおよびPrintPreviewDialogクラスで使用されます。はPrintControllerWithStatusDialog、印刷プロセス中に印刷ステータスダイアログを提供します。
を使用しているようです。PrintControllerWithStatusDialog PrintController
警告:私は、基本PrintControllerが同じように機能しないことを確認する立場にありません。
このMSDNフォーラムによると、投稿はPrintControllerWithStatusDialogデフォルトです。
彼はこのようなことを提案します:
MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController();
プロパティを割り当てない場合はPrintDocument.PrintController、デフォルトのプリントコントローラを取得します。そのインスタンスはPrintControllerWithStatusDialog進行状況ダイアログを表示し、ページをカウントし、通常、プログラムが何らかの理由で応答しないが、それ以外の場合はハングしていないことをユーザーに通知します。
フォームコンストラクタで再割り当てするだけです。ボイラープレートコードは次のとおりです。
Public Class Form1
Public Sub New()
InitializeComponent()
PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController
End Sub
End Class
また、印刷が進行中であることをユーザーに通知するために、他のことを行う必要があります。少なくとも砂時計カーソルを表示します。