Print Funktion Visual Studio 10
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Käsekuchen.
-
-
Was denn für ne Ausgabe? ListBox-Items? plain text? Die Form, die Du erstellt hast? Hast Du denn überhaupt schon zufriedenstellende Frankierergebnisse? Wenn ja, wie hast Du sie bekommen? Wär auch für die anderen in jenem Thread interessant.
Hier findest Du mal eine (von vielen) Möglichkeiten.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. -
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! -
@Käsekuchen oder auch hier: ReportViewer-Tutorial für Anfänger
-
-
-
Ahh, endlich ne Antwort auf eine meiner Post#2-Fragen. Es geht also irgendwie um den Inhalt einer ListBox.
Es gibt mehrere Varianten.
Ich nehme immer:If ListBox.Items.Count = 0 Then
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. -
Habe es jetzt so: den Dialog öffnet er (mit Überprüfung) nur im Dialog steht nichts drin
[update: habe das .txt bei ->VB.NET-Quellcode
- e.Graphics.DrawString(lst_ausgabe.Text, Font1, Brushes.Aqua, 100, 100) [/vbnet ] durch .tostring geändert jetzt habe ich bei der Druckvorschau eine unvollständige Zeile stehen
- [vbnet]
- Private Sub cmc_print_preview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmc_print_preview.Click
- If lst_ausgabe.Items.Count = 0 Then
- MessageBox.Show("ListBox erst füllen")
- Else
- PrintPreviewDialog1.ShowDialog()
- End If
- End Sub
- Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
- Dim Font1 As New Font("arial", 16, FontStyle.Regular)
- e.Graphics.DrawString(lst_ausgabe.Text, Font1, Brushes.Aqua, 100, 100)
- End Sub
- Private Sub cmd_print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_print.Click
- PrintDocument1.Print()
- End Sub
- End Class
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Käsekuchen“ ()
-
Uiuiui. Wenn Du mal ein paar Stunden/Tage/Wochen hast, schnapp Dir n VB-Lernstoffbuch.
lst_Ausgabe.ToString = "Wandele die ListBox in einen String um"
Aber Du willst doch bestimmt: "Wandele die Items/Zeilen/Einträge, die in der ListBox stehen, zu Strings um", richtig?
-> For-Schleife über alle ListBox-Items und diese per DrawString zeichnen (Tipp: die Zielkoordinaten müssen immer anders sein, zumindest die y-Koordinate, sonst wird alles übereinandergeschrieben)
Wie wär dazu Dein Codevorschlag?
btw: bei Deinem Post ist irgendwo ein Code-Tag zuviel. Da ist ein fließender Übergang von Text zu Code und man erkennt schlecht, was wozu gehört. Zeile 1-4 dürfte wahrscheinlich nicht zum Code gehören, richtig?
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. -
Käsekuchen schrieb:
Das kannst Du im Designer machen oder im Code vor dem Aufruf des Dialogs.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! -
Habe das in einer For schleife getan der wert y wert wird bei jedem durchgang erhöht aber der text bleibt immer noch in einer Zeile
VB.NET-Quellcode
-
- Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
- Dim Font1 As New Font("arial", 16, FontStyle.Regular)
- Dim x As Integer
- Dim y As Integer
- x = 100
- y = 30
- For z As Integer = 0 To 21 Step 1
- e.Graphics.DrawString(lst_ausgabe.ToString, Font1, Brushes.Aqua, 100, 30)
- 'x = x + 20
- y = y + 50
- Next z
- End Sub
-
Ich weiß, das ist jetzt sehr spekulativ, aber könnte es daran liegen, dass Du x und y auch in Deine DrawString-Funktion einbauen musst, und zwar dort, wo jetzt noch ...Brushes.Aqua, 100, 30 steht?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. -
Danke. Die Ergebnisse stehen untereinander. Nur Vor dem Ergebnis in der Ausgabe steht 2
"System.Windows.Forms.ListBox, Items.Count: 21, Items[0]" Kann ich das irgendwie wegbekommen sonst ist der rest nämlich abgeschnitten.
ps. wie füge ich hier im Forum ein Screenshot ein (falls es geht ?)
----------------------------------------------------------------------------------------------------------------------------
update: Das Komplette Ergebnis wird angezeigt habe mit den Schriftgrößen und arten rumprobiert. Jetzt ist nur noch dieser Text vor dem Ergebnis vorweg.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Käsekuchen“ ()
-
Ehm ... was steht in Deiner Ausgabe? Das riecht danach, als hättest Du in Deinem Code noch irgendwo
lst_Ausgabe.ToString
stehen ... ach ja, in Zeile 11:e.Graphics.DrawString(lst_ausgabe.ToString, Font1, Brushes.Aqua, 100, 30)
. Und wie bereits in Post#9 geschrieben:lst_ausgabe.ToString
durchlst_Ausgabe.Items(z).ToString
ersetzen. Ich befürchte ganz heftig, dass Du nicht weißt, was Dein Code macht. Und das führt zu vielen weiteren
Fragestunden
Antwort für Frage 2: [erweiterte Antwort] -> Dateianhänge (steht unter dem großen Texteingabeformular).
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. -
-
lst_ausgabe.ToString
ist falsch, falsch, falsch. Wie oft denn noch? Diese Anweisung versucht eine schriftliche Aussage über Deine ListBox zu machen. Die willst Du nicht. Du willst nicht wissen, welche Eigenschaften alles Deine ListBox hat. Obwohl, doch, eine, dazu komm ich gleich.
Wenn ich nicht ungefähr wüsste, was das Problem ist, würde ich sagen: Wo stürzt das Programm ab? Welcher Code wird ausgeführt?Welcher AuswurfWelche Fehlermeldung kommt?
Obwohl Du meine Frage immer noch nicht beantwortet hast, wie weit Du mit Deinem Frankierproblem gekommen bist, vermute ich, dass Du auf 21 Kombinationen gekommen bist, richtig? Richtig, denn zumindest da war Deinelst_ausgabe.ToString
zu was nützlich, denn sie sagt, dass in der ListBox 21 Items drin sind:Items.Count: 21
Und was machst Du? Du willst diese in einer For-Schleife durchgehen und drucken. Wie sieht Deine For-Schleife aus? Du zählst von 0 bis 21 und rufst die Items auf. Von 0 - 21. Zähl mal bitte selber (notfalls mit Fingern) nach, wieviele Items das wären und pass Deinen Code entsprechend an.
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. -
Danke für die Geduld mit mir.
das frankieren müsste soweit fertig sein. und das Programm stürzt bei Zeile 52 mit out of Range ab
VB.NET-Quellcode
-
- Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
- Dim Font1 As New Font("arial", 10, FontStyle.Regular)
- Dim x As Integer
- Dim y As Integer
- x = 100
- y = 30
- For z As Integer = 0 To 21 Step 1
- e.Graphics.DrawString(lst_ausgabe.Items(z).ToString, Font1, Brushes.Black, x, y)
- 'x = x + 20
- y = y + 50
- Next z
- End Sub
-
Dein Code enthält 18 Zeilen. Was also für ne Zeile 52? Erneut meine Vermutung: Hier ist es Zeile 12. Denn Du hast meinen Rat nicht befolgt. Und damit ist mein Geduldstopf fast leer. Du zählst mit dem Code
For z As Integer = 0 To 21 Step 1
von 0 bis 21. Das sind 22 Durchläufe. Du hast aber nur 21 Items. Natürlich stürzt er ab. Dein Programm kommt in der letzten Runde zu dem Ausdrucke.Graphics.DrawString(lst_ausgabe.Items(21).ToString, ...
. Es gibt kein Item Nummer 21. Deswegen der Absturz. Ja, es gibt 21 Items, aber deren Index ist nullbasiert -> Es gibt die Items 0 bis 20. Item(0), Item(1), ... Item(20). Mach aus Deinem For-Schleifencode:For z As Integer = 0 To 20
. Der ZusatzStep 1
kann sogar weg. Aber noch viel besser wäre, wenn Du gar nicht erst in die Falle gerätst, nämlich mit:
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. -
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 dein Tipp. Ich habe es gelesen und die Sachen, die ich gebraucht habe, habe ich mir rausgesucht.
Sorry dafür dass ich nicht geantwortet habe. Ich werde demnächst besser aufpassen, dass ich das Antworten nicht vergesse.
-
Tags
-
Ähnliche Themen
-
Schrubbii - - Sonstige Problemstellungen
-
4 Benutzer haben hier geschrieben
- Käsekuchen (9)
- VaporiZed (7)
- RodFromGermany (3)
- VB1963 (1)