PrintForm1.Print() soll nicht ausgeführt werden.

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    PrintForm1.Print() soll nicht ausgeführt werden.

    Hallo an alle,

    wie bekomme ich es hin, dass die PrintForm1.Print() nicht ausgeführt wird, bzw. ich den Druckvorgang stoppe.

    PrintForm1.Print() = False klappt nicht.
    Vor dem Drucken soll überorüft werden, das alle notwendigen Eingaben getätigt wurden. Ich hänge Euch mal den Code dazu:

    VB.NET-Quellcode

    1. Private Sub btn_drucken_Click(sender As Object, e As EventArgs) Handles btn_drucken.Click
    2. If txt_nr.Text = "" Then txt_nr.BackColor = Color.DarkBlue
    3. If comb_emmi.Text = "" Then comb_emmi.BackColor = Color.DarkBlue
    4. If cmb_eintragen.Text = "" Then cmb_eintragen.BackColor = Color.DarkBlue
    5. If txt_netto.Text = "" Then txt_netto.BackColor = Color.DarkBlue
    6. If txt_gesamt.Text = "" Then txt_gesamt.BackColor = Color.DarkBlue
    7. If comb_von.Text = "" Then comb_von.BackColor = Color.DarkBlue
    8. Beep()
    9. Select Case MessageBox.Show(" Bitte füllen Sie alle blau markierten Felder aus", "Quittungsblock Fehler", MessageBoxButtons.OK, MessageBoxIcon.Stop)
    10. Case Windows.Forms.DialogResult.OK
    11. If Windows.Forms.DialogResult.OK Then
    12. 'PrintForm1.PrintAction = False
    13. End If
    14. End Select
    15. If DialogResult.OK Then
    16. txt_summe.BackColor = Color.White
    17. txt_netto.BackColor = Color.White
    18. txt_nr.BackColor = Color.White
    19. cmb_eintragen.BackColor = Color.White
    20. comb_emmi.BackColor = Color.White
    21. comb_von.BackColor = Color.White
    22. txt_gesamt.BackColor = Color.White
    23. End If
    24. If txt_summe.BackColor = Color.White And
    25. txt_netto.BackColor = Color.White And
    26. txt_nr.BackColor = Color.White And
    27. cmb_eintragen.BackColor = Color.White And
    28. comb_emmi.BackColor = Color.White And
    29. comb_von.BackColor = Color.White And
    30. txt_gesamt.BackColor = Color.White Then
    31. 'PrintForm1.Print()
    32. End If
    33. End Sub


    Ich weiß, Formen auszudrucken ist Blödsinn, über den Printdialog habe ich es auch schon versucht, wo kann bitte der Fehler liegen. Einwenig geschummelt, eigentlich soll festgestellt werden, ob die Boxen entweder mit Zahlen oder Buchstaben gefüllt sind, aber ich denke, so geht es auch...

    Ich bin mehr der Mensch - Learning by doing... Vielleicht ist mein Code mal wieder völlig daneben, aber für Hilfe wäre ich dankbar.

    Grüße aus Wentorf

    Friedhelm

    P.S.: Löffelmann - die Variablen habe ich durch. Schon lustig, wie der erste Rechner über Berechnungen der Konsole aussah. :)

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

    Sorry, er überspringt und er druckt sogar die blau hinterlegten Boxen.
    Wenn ich den Code
    'Case Windows.Forms.DialogResult.Yes
    ausfüfre, zeigt er mir sogar den PrintDialog. Weiter erscheint, wenn alles ausgefüllt ist die Message Box nochmal... :)

    Okay, das versteh ich, da ich den Dialog aufrufe. Nur soll wenn alle Felder ausgefüllt werden die Form gedruckt werden. Muss ich denn alles vorab als Variablen angeben?

    Grüße
    friedhelm
    ah, ok - wenn du Code postet, wo auskommentiert ist, was in deim wirklichen Code nicht auskommentiert ist, sind Mißverständnisse ja gradezu beabsichtigt programmiert.
    Vlt. änderste deinen geposteten Code so, dass er auch das macht, über das du dich beschwerst.

    Ach - und das steht doch auch im Löffelmann, dass man immer Strict On programmieren soll.
    Was also als nächstes zu tun ist: Visual Studio - Empfohlene Einstellungen
    Nichts anderes ist als nächstes zu tun.

    Dann wird dir auch ein Fehler im Zusammenhang mit deim Problem angezeigt, aber ist nur im Zusammenhang damit - wenns dich gleich drauf bringen täte wäre ich beeindruckt, aber versprech dir nicht zuviel.

    Das einzige Versprechen ist, dass dann die Fehler angezeigt werden, die bereits jetzt drinne sind.
    Und zukünftige solche dummen Fehler werden dann vermieden.

    Also nochmal - zwei Dinge:
    1. den geposteten Code aktualisieren, damit wir über was sprechen, was auch wirklich da ist
    2. Visual Studio - Empfohlene Einstellungen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Viddi schrieb:

    Druckvorgang
    solltest Du immer aus dem PrintPreviewDialog-Dialog starten, da musst Du ja nicht den Print-Button drücken. Außerdem siehst Du die Druckvorschau.
    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!
    Das mag ja sein, für meine nächste und überholte Programmierung, aber ich bin schon zu tief in dem Block drin. wie bekomme ich den folgenden code ohne Perwuev hin

    VB.NET-Quellcode

    1. Private Sub btn_drucken_Click(sender As Object, e As EventArgs) Handles btn_drucken.Click
    2. If txt_nr.Text = "" Then txt_nr.BackColor = Color.DarkBlue
    3. If comb_emmi.Text = "" Then comb_emmi.BackColor = Color.DarkBlue
    4. If cmb_eintragen.Text = "" Then cmb_eintragen.BackColor = Color.DarkBlue
    5. If txt_netto.Text = "" Then txt_netto.BackColor = Color.DarkBlue
    6. If txt_gesamt.Text = "" Then txt_gesamt.BackColor = Color.DarkBlue
    7. If comb_von.Text = "" Then comb_von.BackColor = Color.DarkBlue
    8. Beep()
    9. Select Case MessageBox.Show(" Bitte füllen Sie alle blau markierten Felder aus", "Quittungsblock Fehler", MessageBoxButtons.OK, MessageBoxIcon.Stop)
    10. Case Windows.Forms.DialogResult.OK
    11. If Windows.Forms.DialogResult.OK Then
    12. PrintForm1.PrintAction = False
    13. End If
    14. End Select
    15. If DialogResult.OK Then
    16. txt_summe.BackColor = Color.White
    17. txt_netto.BackColor = Color.White
    18. txt_nr.BackColor = Color.White
    19. cmb_eintragen.BackColor = Color.White
    20. comb_emmi.BackColor = Color.White
    21. comb_von.BackColor = Color.White
    22. txt_gesamt.BackColor = Color.White
    23. End If
    24. If txt_summe.BackColor = Color.White And
    25. txt_netto.BackColor = Color.White And
    26. txt_nr.BackColor = Color.White And
    27. cmb_eintragen.BackColor = Color.White And
    28. comb_emmi.BackColor = Color.White And
    29. comb_von.BackColor = Color.White And
    30. txt_gesamt.BackColor = Color.White Then
    31. PrintDialog1.ShowDialog()
    32. PrintDialog1.Document.DocumentName = Quittungsblock
    33. End If
    34. End Sub


    Was ist hier verkehrt???? :)

    Viddi schrieb:

    VB.NET-Quellcode

    1. If Windows.Forms.DialogResult.OK Then
    Fang an mit Option Strict On.
    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!
    @ErfinderDesRades Jou. Und zumindest hat er es fertiggebracht, seinen Avatar zu ändern. ;)

    Viddi schrieb:

    Was mache ich bloß hier falsch
    Wie reagierst Du, wenn OK oder Abbrechen gedrückt wird?
    Setz mal nen Haltepunkt rein und verfolge den Ablauf in Deinem Code.
    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!
    Das Kommunikationsproblem ist nicht graviernd, sondern habe ich sicher das "Option Strict On" eingefügt.
    Und ich denke, auch wir - können hier mit Respekt umgehen, und auch erkenne, wenn jemand wie ich hier seine Hilfe benötigt, nicht umsonst sitze ich teilweise Stunden vor dem Rechner, lese und probiere aus.

    Und einen Deibel schere ich mich auch nicht, allerdings sollte es auch verständlich sein, das man irgendwann den Mut verliert, aber ihn wieder bekommt. Und dann die Tonne seine Tonne sein lässt.
    Das Option Strict On habe ich überall eingesetzt, es hatte trotzdem nicht geklappt. Und das dunkle Bilde warf mir die Fehlermeldung heraus, im dem Glauben, das mir jemand sagen kann wo denn der Fehler liegen mag.

    Ich denke, du hast Dich auch überall in VB eingelesen oder Informatik studiert, also denke ich, wie anfangst gesagt, das Respekt eines der größten Tugenden sein sollte, auch wenn der Mensch nur ein zehntel von dem versteht was Di ihm an Hilfe gewährtst.

    Und nochmals weiß ich nicht, wo ich das Option Strict On einfügen soll.

    Grüße aus Hamburg
    Friedhelm

    @ Rod - ja das kann er zumindest, wenn ihr wirklich der Meinung seid, ich zu blöd oder nicht lernwillig, dann sagt es mir und ich werde Euch icht mehr auf die Nerven gehen.

    Viddi schrieb:

    wo ich das Option Strict On einfügen soll
    1. Projekt => Eigenschaften => Kompilieren für jedes bereits erstellte Projekt,

    2. Tools => Optionen => Projects and Solutions => VB Defaults für alle neu anzulegenden Projekte.

    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!
    Jo, für respektvollen Umgang miteinander bin ich unbedingt für.
    Und ist in meinen Augen sehr respektlos, meine Hinweise zweimal kommentarlos zu übergehen, und denselben Hinweis von Rod auch nochmal, und gänzlich zusammenhanglos komplett was anderes zu reden anzufangen.
    Und erst nachdem ich das mal angesprochen habe, rückst du damit heraus, dass du mit der Begrifflichkeit "Option Strict" überhaupt nichts anfangen kannst.

    Und klar hab ich auch so manche Frage gestellt, und stelle gelegentlich noch immer welche. Aber wenn sich jemand die Mühe macht, mir zu antworten, bekommt er Feedback von mir, ob und was sein Hilfe-Versuch mir gebracht hat. Und das auch, wenns mir nix gebracht hat, sogar besonders dann, denn dann brauche ich weitere Hilfestellung.
    Das ist was ich unter Kommunikation verstehe.