This class, derived from System.Drawing.Printing.PrintController , provides a status dialog while printing occurs. The dialog is hosted on a separate thread, and it automatically updates the document title and page number as printing continues. The implementation of this class is interesting, as it illustrates one way of managing a multithreaded progress dialog. A decompilation tool such as Anakrino allows you to examine this for yourself. public class PrintControllerWithStatusDialog : System.Drawing.Printing.PrintController { // Public Constructors public PrintControllerWithStatusDialog (System.Drawing.Printing.PrintController underlyingController ); public PrintControllerWithStatusDialog (System.Drawing.Printing.PrintController underlyingController , string dialogTitle ); // Public Instance Methods public override void OnEndPage (System.Drawing.Printing.PrintDocument document , System.Drawing.Printing.PrintPageEventArgs e ); // overrides System.Drawing.Printing.PrintController public override void OnEndPrint (System.Drawing.Printing.PrintDocument document , System.Drawing.Printing.PrintEventArgs e ); // overrides System.Drawing.Printing.PrintController public override Graphics OnStartPage (System.Drawing.Printing.PrintDocument document , System.Drawing.Printing.PrintPageEventArgs e ); // overrides System.Drawing.Printing.PrintController public override void OnStartPrint (System.Drawing.Printing.PrintDocument document , System.Drawing.Printing.PrintEventArgs e ); // overrides System.Drawing.Printing.PrintController } HierarchySystem.Object System.Drawing.Printing.PrintController PrintControllerWithStatusDialog |