PrintPreviewDialog problem

truespin

Grünschnabel
hallo zusammen,

ich habe ein kleines problem mit dem PrintPreviewDialog.
der dialog wirft beim anzeigen ein PrintPage event das ich auch behandle... wie eben beim "normalem" drucken auch. leider wird im PrintPreviewDialog nichts angezeigt... heißt die seite(n) sind leer. der ausdruck auf drucker funktioniert ohne probleme!

hier ein paar code ausschnitte:

die methode zum aufruf des dialogs:
Code:
        public void ShowPrintPreviewDialog()
        {
            // Creat new PrintPreviewDialog
            PrintPreviewDialog oPrintPreviewDialog = new PrintPreviewDialog();

            // Get PrintDoc
            oPrintPreviewDialog.Document = this.m_oAreaProperties.PrintDoc;

            // Set anti alais
            oPrintPreviewDialog.UseAntiAlias = true;

            // Show dialog to user
            oPrintPreviewDialog.ShowDialog();
        }

BeginPrint:
Code:
        void PrintDoc_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {

            // Creat new PrintHelper
            this.m_oPrintHelper = new PrintHelper(new SizeF(this.m_oAreaProperties.AreaWidth, this.m_oAreaProperties.AreaHeight),
                                                  this.m_oreaProperties.PagePrinterSettings);
            // Current page
            this.m_oPrintHelper.CurrentPage = 1;

            // ToDo: Scaling

        }

PrintPage:
Code:
        void PrintDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            // Check if there are more than one page to print
            if (this.m_oPrintHelper.PageCount > 0
                && this.m_oPrintHelper.CurrentPage < this.m_oPrintHelper.PageCount)
            {
                // There are more pages to print
                e.HasMorePages = true;
            }
            else
            {
                // There are only one page to print
                e.HasMorePages = false;
            }

            // Check if there are someone to catch
            if (this.OnPrintPage != null)
            {
                // Throw event to print
                this.OnPrintPage(this, new PrintingEventArgs(this.m_oPrintHelper.PageOffset(this.m_oPrintHelper.CurrentPage), new SizeF(1, 1), e));
            }

            // Next page
            this.m_oPrintHelper.CurrentPage++;
        }

und die EndPrint:
Code:
        void PrintDoc_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            this.m_oPrintHelper = null;
        }
wäre super wenn mir jemand weiter helfen könnte!

gruß,
truespin
 
Zurück