Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

VB 2008 - ListBox drucken

  -1- -2- vorwärts >>>  
FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 04.04.2009 um 13:21 Uhr

Hallo,

ich hab ein Programm geschrieben das, wenn man was in ne Textbox schreibt, den Text in ne Listbox übernimmt. Soweit sogut, funktioniert auch.
Jetz hab ich noch ein PrintDocument dazugemacht, damit man diesen text acuh drucken kann. Funktioniert FAST. Jetz mein Problem:

Es druckt zwar, aber es druckt nur das aktuell in der ListBox markierten (bzw angeklickte) Text, nicht jedoch das ganze.
Wie muss ich also den Code verändern, dass er den gesamten Text der Listbox druckt, egal wie ich es angeklickt oder markiert habe?

Hier ist der Text. Zuerst der für's PrintDocument, dann der für das was gedruckt wird.

Dim StringToPrint As String
Private Sub prnDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles prnDoc.PrintPage
Dim numChars As Integer

Dim numLines As Integer

Dim stringForPage As String

Dim strFormat As New StringFormat()

Dim PrintFont As Font

PrintFont = ListBox3.Font

Dim rectDraw As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)

Dim sizeMeasure As New SizeF(e.MarginBounds.Width, e.MarginBounds.Height - PrintFont.GetHeight(e.Graphics))

strFormat.Trimming = StringTrimming.Word

e.Graphics.MeasureString(StringToPrint, PrintFont, sizeMeasure, strFormat, numChars, numLines)

stringForPage = StringToPrint.Substring(0, numChars)

e.Graphics.DrawString(stringForPage, PrintFont, Brushes.Black, rectDraw, strFormat)

If numChars < StringToPrint.Length Then

StringToPrint = StringToPrint.Substring(numChars)

e.HasMorePages = True

Else

e.HasMorePages = False

End If
End Sub



Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
StringToPrint = "Ihr Dialog wurde gedruckt." + vbCrLf + vbCrLf + "Datum und Zeit des Drucks/Gesprächs: " + DateTimePicker1.Text + vbCrLf + vbCrLf + vbCrLf + ListBox3.Text + vbCrLf + vbCrLf + vbCrLf + vbCrLf + vbCrLf + vbCrLf + "Vielen Dank!"

prnDoc.Print()


Da ist jetz also im PrintDocument die ListBox3 enthalten. Wie mache ich das das es den ganzen Text der Listbox druckt?


Danke.
FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 04.04.2009 um 13:39 Uhr

Weiß es keiner? : (
bitch-please
Profi (offline)

Dabei seit 09.2006
650 Beiträge

Geschrieben am: 04.04.2009 um 14:09 Uhr

müsst eig im Button_Click-Event stehen:

Private Sub Button1_Click(bla und sülz)usw.
print(Listbox1)
End Sub

Developers are Caffein-Into-Code-Converters

FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 04.04.2009 um 14:11 Uhr

Zitat von bitch-please:

müsst eig im Button_Click-Event stehen:

Private Sub Button1_Click(bla und sülz)usw.
print(Listbox1)
End Sub




steht ja drin. musst schauen ca in der mitte des letzten absatzes^^
bitch-please
Profi (offline)

Dabei seit 09.2006
650 Beiträge

Geschrieben am: 04.04.2009 um 14:13 Uhr

hast schonmal versucht die Projekt-exe nach dem erstellen aus dem Projektverzeichnis zu nehmen und vom desktop aus zu starten?

Developers are Caffein-Into-Code-Converters

FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 04.04.2009 um 14:15 Uhr
Zuletzt editiert am: 04.04.2009 um 14:15 Uhr

Zitat von bitch-please:

hast schonmal versucht die Projekt-exe nach dem erstellen aus dem Projektverzeichnis zu nehmen und vom desktop aus zu starten?


das bringt ja nicht, funktinieren tut es ja.

ich hab ja nur das problem das es nur das aktuell in der listbox markierte druckt.


edit:
If DerScheiß net funktioniert = "1" Then leck mich AmArsch ="1" Else ich schalt DieKiste ab
:-D
bitch-please
Profi (offline)

Dabei seit 09.2006
650 Beiträge

Geschrieben am: 04.04.2009 um 14:15 Uhr
Zuletzt editiert am: 04.04.2009 um 14:15 Uhr

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Print(ListBox1.Text)
End Sub
End Class

EDIT: so funktionierts bei mir...

Developers are Caffein-Into-Code-Converters

FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 04.04.2009 um 14:16 Uhr

Zitat von bitch-please:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Print(ListBox1.Text)
End Sub
End Class

EDIT: so funktionierts bei mir...


ich versuchs mal^^
bitch-please
Profi (offline)

Dabei seit 09.2006
650 Beiträge

Geschrieben am: 04.04.2009 um 14:25 Uhr

und???

Developers are Caffein-Into-Code-Converters

FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 04.04.2009 um 14:29 Uhr

funzt nicht wirklich ... leider ...

ich muss ja das so abändern das es auch in meinen bereits stehenden code passt^^
reznor - 43
Halbprofi (offline)

Dabei seit 08.2006
134 Beiträge
Geschrieben am: 04.04.2009 um 15:13 Uhr

täusch ich mich, oder musst du nicht alle listbox-itmes in einer schleife durchgehen?

happiness is only real when shared

bitch-please
Profi (offline)

Dabei seit 09.2006
650 Beiträge

Geschrieben am: 04.04.2009 um 15:35 Uhr

er kann das auch ohne Schleife mit

Print(ListBox1.Items.Text)

oder täusch ich mich da?

Developers are Caffein-Into-Code-Converters

reznor - 43
Halbprofi (offline)

Dabei seit 08.2006
134 Beiträge
Geschrieben am: 04.04.2009 um 15:46 Uhr
Zuletzt editiert am: 04.04.2009 um 16:05 Uhr

Zitat von bitch-please:

er kann das auch ohne Schleife mit

Print(ListBox1.Items.Text)

oder täusch ich mich da?



Zitat:

Ruft ein Objekt ab, das die Auflistung der in dieser ComboBox enthaltenen Elemente darstellt.

das steht in der online-hilfe zu der items-methode.
diese auflistung/collection muss ja trotzdem noch durchlaufen werden... und eine .text methode gibt es ja nicht... höchstens tostring()...
ich muss aber ehrlich gestehn, das ich seit min. 2 jahren nichts mehr mit vb gemacht habe...

---------------------------------
edit:

das ist doch der sinn des ganzen?
[verlinkte Grafik wurde nicht gefunden]

der zugehörige code:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim text
text = ""
For i As Integer = 0 To ListBox1.Items.Count - 1
text = text + ListBox1.Items.Item(i).ToString + vbCrLf
Next
MessageBox.Show(text)
End Sub






happiness is only real when shared

FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 04.04.2009 um 17:00 Uhr

nein eben nicht. ich wil das der text den ich eine textbox eingegeben habe in der listbox erscheint. jeden satz in eine linie der listbox. das funktioniert auch. jetz will ich aber das wenn ich schreibe:

prnDoc = ListBox1.Text

das eben nicht nur der aktuell markierte text gedruckt wird sondern eben ALLES was in der listbox drinsteht.

das geht aber i-wie nicht, weil immer nur das gedruckt wird was ich grad in der listbox angewählt habe.
reznor - 43
Halbprofi (offline)

Dabei seit 08.2006
134 Beiträge
Geschrieben am: 04.04.2009 um 18:19 Uhr

Zitat von FaR_CrY:

nein eben nicht. ich wil das der text den ich eine textbox eingegeben habe in der listbox erscheint. jeden satz in eine linie der listbox. das funktioniert auch. jetz will ich aber das wenn ich schreibe:

prnDoc = ListBox1.Text

das eben nicht nur der aktuell markierte text gedruckt wird sondern eben ALLES was in der listbox drinsteht.

das geht aber i-wie nicht, weil immer nur das gedruckt wird was ich grad in der listbox angewählt habe.


dann solltest du wohl meinen programmcode ausprobieren, einen anderen weg, wie über eine schleife wird es sicherlich nicht geben ;)
außer du schreibst den text, den du im moment in die listbox schreibst in eine mehrzeilige textbox, dann kannst du über die text-property auf den gesamten text zugreifen. bei einer listbox ist das schlicht nicht möglich, da jede zeile in der listbox ein einzelnes element ist, das über eine id angesprochen werden möchte!

happiness is only real when shared

bredator - 41
Champion (offline)

Dabei seit 03.2008
5319 Beiträge

Geschrieben am: 04.04.2009 um 19:06 Uhr
Zuletzt editiert am: 04.04.2009 um 19:06 Uhr

Das liegt eher in der Listbox selber. Gibt es einen bestimmten Grund, dass du ein Listbox-Element benutzen musst?

Versuch mal ein RichEdit-Element, wenn es nicht unbedingt ein Listbox sein muss.

Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.

  -1- -2- vorwärts >>>
 

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -