2012-05-13 155 views
10

C#で書かれたWindowsアプリケーションでMyPrintDocument.print()を使用すると、キャンセルボタン付きWindows処理印刷ルーチンのダイアログが表示されます。私はこのダイアログを表示したくありません、それは可能ですか?printDocument.print()での印刷ダイアログをスキップし、ページを直接印刷する方法は?

そうでない場合は、どの方法で使用しますか?私のプログラムはサーマルプリンタを使用しています。

答えて

16

あなたが使用しているのはPrintControllerです。

.NET Frameworkには、一般的な作業を実行するのに役立つPrintControllerから派生した3つのプリントコントローラが含まれています。 StandardPrintControllerは、文書をプリンタに印刷します。 PreviewPrintControllerは、印刷時にドキュメントがどのように見えるかのプレビューを生成し、PrintPreviewControlおよびPrintPreviewDialogクラスで使用されます。 PrintControllerWithStatusDialogは、印刷プロセス中に印刷ステータスダイアログを提供します。

PrintControllerWithStatusDialogPrintControllerのように聞こえます。


警告:私は基本的PrintControllerが同じように作用しないことを確認する立場にはないです。

このMSDN Forum PostingによるPrintControllerWithStatusDialogがデフォルトである:あなたがPrintDocument.PrintControllerプロパティを割り当てない場合、デフォルトのプリントコントローラを取得

MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController(); 
4

彼はこのような何かを示唆しています。プログレス・ダイアログを表示し、ページを数え、理由があるとプログラムが応答しないが、そうでなければハングしていないことをユーザに一般的に知らせるPrintControllerWithStatusDialogのインスタンス。

単純にフォームコンストラクタに再割り当てします。ボイラープレートコードは次のとおりです。

Public Class Form1 
    Public Sub New() 
     InitializeComponent() 
     PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController 
    End Sub 
End Class 

そして、印刷が進行中であることをユーザーに伝えるために何か他の操作を行う必要があります。少なくともhourglass cursorを表示してください。

関連する問題