PrintPreviewDialog problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PrintPreviewDialog problem

    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:

    Quellcode

    1. public void ShowPrintPreviewDialog()
    2. {
    3. // Creat new PrintPreviewDialog
    4. PrintPreviewDialog oPrintPreviewDialog = new PrintPreviewDialog();
    5. // Get PrintDoc
    6. oPrintPreviewDialog.Document = this.m_oAreaProperties.PrintDoc;
    7. // Set anti alais
    8. oPrintPreviewDialog.UseAntiAlias = true;
    9. // Show dialog to user
    10. oPrintPreviewDialog.ShowDialog();
    11. }
    Alles anzeigen


    BeginPrint:

    Quellcode

    1. void PrintDoc_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
    2. {
    3. // Creat new PrintHelper
    4. this.m_oPrintHelper = new PrintHelper(new SizeF(this.m_oAreaProperties.AreaWidth, this.m_oAreaProperties.AreaHeight),
    5. this.m_oreaProperties.PagePrinterSettings);
    6. // Current page
    7. this.m_oPrintHelper.CurrentPage = 1;
    8. // ToDo: Scaling!!!
    9. }
    Alles anzeigen


    PrintPage:

    Quellcode

    1. void PrintDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    2. {
    3. // Check if there are more than one page to print
    4. if (this.m_oPrintHelper.PageCount > 0
    5. && this.m_oPrintHelper.CurrentPage < this.m_oPrintHelper.PageCount)
    6. {
    7. // There are more pages to print
    8. e.HasMorePages = true;
    9. }
    10. else
    11. {
    12. // There are only one page to print
    13. e.HasMorePages = false;
    14. }
    15. // Check if there are someone to catch
    16. if (this.OnPrintPage != null)
    17. {
    18. // Throw event to print
    19. this.OnPrintPage(this, new PrintingEventArgs(this.m_oPrintHelper.PageOffset(this.m_oPrintHelper.CurrentPage), new SizeF(1, 1), e));
    20. }
    21. // Next page
    22. this.m_oPrintHelper.CurrentPage++;
    23. }
    Alles anzeigen


    und die EndPrint:

    Quellcode

    1. void PrintDoc_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
    2. {
    3. this.m_oPrintHelper = null;
    4. }


    wäre super wenn mir jemand weiter helfen könnte!

    thx, truespin
  • hallo zusammen,

    problem gelöst... ich könnte mir sowas von in den arsch beißne!!!
    hier die "lösung" des "problems":

    wenn man in der PrintPage ein event schmeißt

    Quellcode

    1. void PrintDoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    2. {
    3. // Check if there are more than one page to print
    4. if (this.m_oPrintHelper.PageCount > 0
    5. && this.m_oPrintHelper.CurrentPage < this.m_oPrintHelper.PageCount)
    6. {
    7. // There are more pages to print
    8. e.HasMorePages = true;
    9. }
    10. else
    11. {
    12. // There are only one page to print
    13. e.HasMorePages = false;
    14. }
    15. // Check if there are someone to catch
    16. if (this.OnPrintPage != null)
    17. {
    18. // Throw event to print
    19. this.OnPrintPage(this, new PrintingEventArgs(this.m_oPrintHelper.PageOffset(this.m_oPrintHelper.CurrentPage), new SizeF(1, 1), e));
    20. }
    21. // Next page
    22. this.m_oPrintHelper.CurrentPage++;
    23. }
    Alles anzeigen


    sollte man dies auch behandeln -.-

    mein problem war, dass das "normale" drucken funktioniert hat da ich dafür das event registriert haben... für die preview leider eben nicht. dumm gelaufen!


    thx, truespin