コモンダイアログ(プリンタ)でプリンタの変更がうまくいきません。


安藤三四郎  2006-01-11 00:57:56  No: 93508

CommonDialog1.Flags = cdlPDPrintSetup  としてコモンダイアログで印刷設定フォームを開き、プリンタの変更を行った後印刷する場合があります。
アプリケーションを立ち上げて、何も印刷していない状態でプリンターを変更すると、変更後のプリンターに印刷されます。ところが1回印刷を行った後は、何回プリンターを変更しても、最初に使用したプリンターにしか印刷できません。 Printer.DeviceName で確認すると確かに最初に使用したプリンターになっておりコモンダイアログに表示されているプリンターとは異なっています。(VB6、WindowsXP)


K.J.K.  2006-01-11 23:43:46  No: 93509

CommonDialogコントロールで設定されたプロパティなどの値を、
Printerオブジェクトにいつどのように反映させていますか?


安藤三四郎  2006-01-12 21:17:29  No: 93510

コメントありがとうございます。CommonDialogで設定されたプロパティ、例えばページ数、等はプリンター制御プロシージャには何も反映させていません。CommonDialogを使用する私の目的は、単に出力するプリンタを選択するという目的のみに使用しており、プロパティはプリンターオブジェクトに反映させていません。プリンターオブジェクトにプリンターを変更したプロパティを設定しないといけないのでしょうか?
1回目の印刷を行う前のプリンタ変更においては、CommonDialogを閉じた後制御がすぐにアプリケーションに戻ります。しかし、印刷を行った後のプリンタ変更においては、CommonDialogを閉じた後制御がなかなかアプリケーションに戻りません。(何かの処理を長々と行っているように感じます。)結局、CommonDialogに表示されているプリンタ名称は変更されていますが、Printer.DeviceName で確認したプリンタ名称は変わっていません。
何卒、よろしくお願いいたします。


魔界の仮面弁士  2006-01-12 21:35:32  No: 93511

CommonDialog1.PrinterDefault の設定は、どちらにしているのですか?


安藤三四郎  2006-01-13 02:21:01  No: 93512

コメントありがとうございます。
CommonDialog1.PrinterDefaultは"true"に設定しています。CommonDialogが貼り付けられているフォームのLoadイベントで設定しています。
念のためCommonDialogを閉じた直後に走るプロシージャにも入れています。
"FALSE”にしてもだめでした。(当たり前か・・・)
最初の質問に記載した症状は、アプリケーションを一旦終了し、再起動した直後には変更したプリンターに印刷が行われます。それをもう一度変更しようとするとやはりできません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加