We help IT Professionals succeed at work.

How to grab the printer icon click event from PrintDocument

FrancineTaylor
on
I am using PrintDocument for printing my reports.  My boss has required that the report do this sequence of actions:

1. Preview report
2. When printer button is clicked, go to a PrintDialog to edit printer settings
3. Print report

Now, I've found that I can assign a BeginPrint event to the document, but that triggers both when the preview is printed and when the printer icon is clicked.  I need something that is going to catch the print icon click event from the preview of a PrintDocument.
Comment
Watch Question

CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2008

Commented:
Are you using a PrintDocument, PrintPreviewControl, and a PrintDialog in combination, as described in this article?

The Print Dialog Box
http://www.functionx.com/vcsharp2008/controls/dlgprint.htm

Author

Commented:
This doesn't tell me anything about the PrintPreviewDialog, which is what is used to preview a report for a PrintDocument.  The ShowDialog() method on the PrintPreviewControl displays the report in the form, and presents the user with a "print" button.

If that button is clicked, the report prints.

I need to be able to intercept that button click so I can present the user with a PrintDialog before printing occurs.
CERTIFIED EXPERT
Most Valuable Expert 2012
Top Expert 2008
Commented:
There isn't any event that you can catch.  The button is an internal member to that control.  What I did in the past is to use reflection to find a reference to the button, and attach an event handler to the catch the Click event.

Explore More ContentExplore courses, solutions, and other research materials related to this topic.