Drucken mit Subs

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von JLH.

    Drucken mit Subs

    Ich versuche mich wieder mit Drucken und eigentlich klappt es mit der "einfachen! Ausgabe ganz gut. Bei der "komplizierten" Ausgabe habe ich ein paar Bereiche die je nach Ergebnis entweder auf Seite 1 oder Seite 2 gedruckt werden sollen. Damit ich die Bereiche und den Seitenwechsel richtig setzen kann dachte ich, ich mach Subs und rufe die entsprechend auf. Leider klappt das aber nicht da ich irgendwas mit den Argumenten falsch mache.
    Was muß bei den ????? rein? sender As Object, e As PrintPageEventArgs hab ich schon probiert...

    Achso ja... das "e" ist als Fehler unterstrichen.

    VB.NET-Quellcode

    1. Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
    2. Dim FontDrucker As New Font("Arial", 11, FontStyle.Regular)
    3. Dim BlackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 2)
    4. Dim Fakt As Integer = 14
    5. If Seite = 0 Then
    6. Ueberschrift(????)
    7. End If
    8. End Sub
    9. Sub Ueberschrift(?????)
    10. FontDrucker = New Font("Arial", 25)
    11. xPos = 4500
    12. yPos = 1000
    13. e.Graphics.DrawString("Bla Bla Bla", FontDrucker, Brushes.Black, New Point(xPos / Fakt, yPos / Fakt))
    14. End Sub


    Ich habe mal mit

    VB.NET-Quellcode

    1. Sub Ueberschrift(e As PrintPageEventArgs)
    und

    VB.NET-Quellcode

    1. Ueberschrift(e)
    probiert und es scheint zu funktionieren. Ist dies die richtige Lösung?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JLH“ ()

    @JLH Schau mal hier rein:
    Drucken mehrseitiger Dokumente
    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!
    Die Parameter einer Methode legst du fest. Da kommt nix Bestimmtes rein...bzw. alles was du willst

    Schau einmal hier rein für etwas Verständnis zu folgender Erklärung:
    Du willst irgendeine lokal in PrintDocument1_PrintPage definierte Variable in Ueberschrift nutzen, dann muss die da als Argument übergeben werden.
    Das ist nur möglich, wenn die Methodendefinition einen entsprechenden Parameter festlegt.
    Klappt doch syntaktisch, siehe Anhang.
    Für jeden Parameter im Methodenkopf (Post#1, Zeile#1, #13) muss der Typ angegeben werden. Beim Methodenaufruf (Zeile#8) muss nur der Wert, aber nicht der Typ angegeben werden. Und bei

    VB.NET-Quellcode

    1. Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
    feuert zuvor das PrintDocument1 sein PrintPage-Event und steckt dabei Daten in den Parameter e rein. Daher kann dann e.Graphics etc. verwendet werden.

    Ach ja: Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden. Stichwort Option Strict On bei der Division hinten bei

    VB.NET-Quellcode

    1. e.Graphics.DrawString("Bla Bla Bla", FontDrucker, Brushes.Black, New Point(xPos / Fakt, yPos / Fakt))

    Bilder
    • NoErrors.png

      27,84 kB, 837×388, 15 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.