- - PR -
PrintDocument.Print()でFinePrint2000に印刷中にキャンセルでエラー
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-06 21:56
PrintDocumentを利用してFinePrint2000に印刷し、印刷中に印刷中ダイアログでキャンセルを行うとエラーが発生する。
「System.ComponentModel.Win32Exception: パラメータが間違っています。」 <サンプルコード> Private Sub Button1_Click(.....) Handles Button1.Click Try PrintDocument1.Print() <= ここでエラー Catch ex As Exception System.Diagnostics.Debug.WriteLine(ex.StackTrace()) End Try End Sub Private Sub PrintDocument1_PrintPage(.....) Handles PrintDocument1.PrintPage Static page As Integer = 1 If page > 200 Then e.HasMorePages = False Else e.HasMorePages = True End If e.Graphics.DrawString(page.ToString() & "ページ", Me.Font, Brushes.Black, 10, 10) page += 1 End Sub PrintDocument1はツールボックスからフォームに貼り付けたものをそのまま使っています。 他のプリンタ「EPSON LASER LP-8300S」では問題なくキャンセルできました。 FinePrint5を使っても同じでした。 FinePrintの販売元に聞くことかもしれませんが原因又は、回避策の分かる方がいらしたら教えて下さい。 | ||||
|
投稿日時: 2005-06-07 09:43
とりあえず例外をハンドル出来るのであれば、落ちてしまうのは防げますけど。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-06-07 10:09
>とりあえず例外をハンドル出来るのであれば、落ちてしまうのは防げますけど。
すいません。説明が不足していました。 例外のハンドルで対応した場合、以下の問題が発生します。 ・アプリケーションを終了するまでPrintDocumentで出力される印刷中ダイアログが消えない。PrintDocumentを破棄(Dispose)しても消えない ・アプリケーションを終了するまでスプール中のJOBが消えない あきらめて印刷中ダイアログは独自に作成したものを出し、スプール中のJOBは自分で削除するしかないかと考えています。 これ以外の方法があれば知りたいと思います。 |
1