This is the abstract base for classes that manage the printing of a PrintDocument . You set a PrintController instance into the PrintDocument.PrintController property. Then, when you call PrintDocument.Print() , it invokes the OnStartPrint() , then OnStartPage() , OnEndPage() , and finally OnEndPrint() methods . The start and end print methods receive the PrintDocument and a PrintEventArgs instance, while the start and end page methods receive the PrintDocument and a PrintPageEventArgs property. These methods control the sending of the document and its pages to the print device. This is the actual printer, in the case of the StandardPrintController or PrintControllerWithStatusDialog , but is a set of images, in the case of the PreviewPrintController . public abstract class PrintController { // Public Constructors public PrintController (); // Public Instance Methods public virtual void OnEndPage (PrintDocument document , PrintPageEventArgs e ); public virtual void OnEndPrint (PrintDocument document , PrintEventArgs e ); public virtual Graphics OnStartPage (PrintDocument document , PrintPageEventArgs e ); public virtual void OnStartPrint (PrintDocument document , PrintEventArgs e ); } SubclassesPreviewPrintController , StandardPrintController , System.Windows.Forms.PrintControllerWithStatusDialog Returned ByPrintDocument.PrintController Passed ToPrintDocument.PrintController , System.Windows.Forms.PrintControllerWithStatusDialog.PrintControllerWithStatusDialog() |