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
また、印刷が進行中であることをユーザーに通知するために、他のことを行う必要があります。少なくとも砂時計カーソルを表示します。