PrintPreview bleibt weiss?

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    PrintPreview bleibt weiss?

    Hallo!
    Ich arbeite gerade an einem Programm, das den Inhalt einer RichTextBox als PrintPreview anzeigen/ausdrucken soll.
    Leider lässt der Code den ich benutze die PrintPreview komplett weiss. Könnte mir jemand erklären, was ich genau falsch gemacht habe
    und am besten wie man das beheben kann?

    Hier mein Code:

    VB.NET-Quellcode

    1. Private Sub Document_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles Document.PrintPage
    2. Dim Field As RichTextBox = RichTextBox1
    3. Dim UsedFont As Font = (Field.Font)
    4. e.Graphics.DrawString(Field.Text, UsedFont, Brushes.Black, 100, 100)
    5. End Sub


    MfG,
    vich.
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt
    Mit welchem Code wird der

    HolySandvich schrieb:

    PrintPreview
    angesprochen?
    So geht das nämlich:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Using dlg = New PrintPreviewDialog
    3. dlg.Document = Me.PrintDocument1
    4. dlg.ShowDialog()
    5. End Using
    6. End Sub

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @'RodFromGermany
    Das ist der Code den ich zum aufrufen des PrintPreviews benutze:

    VB.NET-Quellcode

    1. Private Sub ShowPreviewToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ShowPreviewToolStripMenuItem.Click
    2. If RichTextBox1.Visible = False Then
    3. MsgBox("No File to preview!", MsgBoxStyle.Critical, "DWS")
    4. Else
    5. If RichTextBox1.Text = "" Then
    6. MsgBox("File is blank!", MsgBoxStyle.Critical, "DWS")
    7. Else
    8. Preview.ShowDialog()
    9. End If
    10. End If
    11. End Sub


    Ich habe den PrintPreviewControl in der Form hinzugefügt, und das PrintDocument ist das zugewiesene Dokument.
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    HolySandvich schrieb:

    das PrintDocument ist das zugewiesene Dokument.
    Ist das gesichert?
    Teste dies:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. If RichTextBox1.Visible AndAlso RichTextBox1.TextLength > 0 Then
    4. Using dlg = New PrintPreviewDialog
    5. dlg.Document = Me.PrintDocument1
    6. dlg.ShowDialog()
    7. End Using
    8. Else
    9. MessageBox.Show("nix da")
    10. End If
    11. End Sub
    12. Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    13. e.Graphics.DrawString(RichTextBox1.Text, RichTextBox1.Font, Brushes.Black, 100, 100)
    14. End Sub
    15. End Class

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Nein, das funktioniert auch nicht.
    Und das zugewiesene Dokument ist definitiv das PrintDocument.
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    HolySandvich schrieb:

    funktioniert auch nicht.
    Dann machst Du was falsch.
    Im Anhang das funktionierende Projekt mit meinem letzten Snippet.
    PrintPreview.zip
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe selbst den Code aus dem Projekt kopiert, und es funktioniert immernoch nicht.
    EDIT 1:
    Habs jetzt nochmal ausprobiert. Anscheinend hat der Code ein Problem mit langen Texten.
    Wenn ich nur z.B "aha" in die RTB eingebe, zeigt er mir die PrintPreview an, wenn ich aber einen seitenlangen Text
    in die RTB einfüge, wird nichts angezeigt... Gibt's dafür auch 'ne Lösung?
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    HolySandvich schrieb:

    Gibt's dafür auch 'ne Lösung?
    Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Danke für den Link! Hab ich mir mal angeguckt, und funktioniert!
    Gute Erklärung, btw.
    Vielen Dank nochmal!
    “If debugging is the process of removing software bugs, then programming must be the process of putting them in.”
    -Unbekannt

    HolySandvich schrieb:

    und funktioniert!
    Da schreib beim nächsten Mal gleich rein, dass Du 10 seiten drucken willst. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!