Hallo erstmal. Bin noch ein ziemlicher Anfänger in der VB.NET Programmierung und wurde vor die Aufgabe gestellt ein Programm, das auch eine Druckfunktion enthält, zu programmieren. Allerdings hatte ich mit dem Drucken in der Programmierung noch nie etwas zu tun.
Ich bin gerade dabei eine Anwendung zu programmieren mit der ich bestimmten Inhalt von insgesamt 3 RichTextBoxes ausdrucken soll (soweit diese Text enthalten). An sich funktioniert auch schon alles, allerdings überschreibt die 2. RichTextBox immer die 1. und die 3. überschreibt diese dann nochmal. Also so, dass das Dokument nur eine Zeile lang ist und diese 3 mal beschrieben wurde. Ich habe mir schon überlegt, ob ich das mit einem einfachen "vbNewLine" hinbekommen könnte, weiß aber nicht wo ich denn dann diese Anweisung einfügen sollte oder ob das überhaupt so funktionieren kann.
Meine Druckfunktion:
Der dazugehörige Aufruf durch einen Button:
Und mein kleines Testbeispiel zum Befüllen der RichTextBoxes beim Start des Programmes:
Ich würde mich über jegliche Hilfe freuen
MfG
Ich bin gerade dabei eine Anwendung zu programmieren mit der ich bestimmten Inhalt von insgesamt 3 RichTextBoxes ausdrucken soll (soweit diese Text enthalten). An sich funktioniert auch schon alles, allerdings überschreibt die 2. RichTextBox immer die 1. und die 3. überschreibt diese dann nochmal. Also so, dass das Dokument nur eine Zeile lang ist und diese 3 mal beschrieben wurde. Ich habe mir schon überlegt, ob ich das mit einem einfachen "vbNewLine" hinbekommen könnte, weiß aber nicht wo ich denn dann diese Anweisung einfügen sollte oder ob das überhaupt so funktionieren kann.
Meine Druckfunktion:
VB.NET-Quellcode
- Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
- If RichTextBox1.Text <> "" Then
- RichTextBox1.SelectAll()
- e.Graphics.DrawString( _
- RichTextBox1.SelectedText, _
- RichTextBox1.SelectionFont, _
- Brushes.Black, _
- New System.Drawing.RectangleF( _
- e.MarginBounds.Top, _
- e.MarginBounds.Left, _
- e.PageBounds.Width, _
- e.PageBounds.Height))
- e.HasMorePages = False
- End If
- If RichTextBox2.Text <> "" Then
- RichTextBox2.SelectAll()
- e.Graphics.DrawString( _
- RichTextBox2.SelectedText, _
- RichTextBox2.SelectionFont, _
- Brushes.Black, _
- New System.Drawing.RectangleF( _
- e.MarginBounds.Top, _
- e.MarginBounds.Left, _
- e.PageBounds.Width, _
- e.PageBounds.Height))
- e.HasMorePages = False
- End If
- If RichTextBox3.Text <> "" Then
- RichTextBox3.SelectAll()
- e.Graphics.DrawString( _
- RichTextBox3.SelectedText, _
- RichTextBox3.SelectionFont, _
- Brushes.Black, _
- New System.Drawing.RectangleF( _
- e.MarginBounds.Top, _
- e.MarginBounds.Left, _
- e.PageBounds.Width, _
- e.PageBounds.Height))
- e.HasMorePages = False
- End If
- End Sub
Der dazugehörige Aufruf durch einen Button:
VB.NET-Quellcode
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
- With PrintDocument1
- .PrinterSettings = CType(PrintDialog1.PrinterSettings.Clone, Printing.PrinterSettings)
- .Print()
- End With
- End If
- End Sub
Und mein kleines Testbeispiel zum Befüllen der RichTextBoxes beim Start des Programmes:
Ich würde mich über jegliche Hilfe freuen
MfG