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
|
|
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]](http://lh3.ggpht.com/_Rql114jTuhg/Sddo1ct219I/AAAAAAAADM4/8wQFcsImFUw/Ohne%20Titel-3%20Kopie.jpg)
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.
|
|