Dieser Tipp zeigt Ihnen wie Sie einen sehr großen Text einer TextBox mit der Eigenschaft "MultiLine = True" ausdrucken können. Benötigte Komponenten
Fügen Sie folgenden Code in den Codeteil der Form ein: Public Class Form1 Inherits System.Windows.Forms.Form ' Verweis auf unsere TextDrucken-Klasse Dim TextDrucken As New TextBoxDrucken Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Ausdruck starten PrintDocument1.Print() End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage ' Druckauftrag an die TextDrucken-Klasse weiterleiten TextDrucken.Print(PrintDocument1, TextBox1, Brushes.Red, "Monotype Corsiva", 12, FontStyle.Italic, e) End Sub End Class Fügen Sie dem Projekt ein neues Klassenmodul hinzu und kopieren folgenden Code in den Codeteil der Klasse: Imports System.Drawing Imports System.Drawing.Printing Imports System.Windows.Forms Public Class TextBoxDrucken Dim PosInStr As Integer Dim IsPrinting As Boolean Dim Coll As New List(Of String) Public Sub Print(ByVal Document As PrintDocument, ByVal TextBox As TextBox, ByVal ForeColor As Brush, _ ByVal Font As String, ByVal FontSize As Integer, ByVal FontStyle As FontStyle, ByVal e As PrintPageEventArgs) Dim left As Decimal = Document.DefaultPageSettings.Margins.Left Dim right As Decimal = Document.DefaultPageSettings.Margins.Right Dim top As Decimal = Document.DefaultPageSettings.Margins.Top Dim bottom As Decimal = Document.DefaultPageSettings.Margins.Bottom Dim pagewidth As Integer = Document.DefaultPageSettings.Bounds.Width - right Dim pageheight As Integer = Document.DefaultPageSettings.Bounds.Height - bottom Dim rect As New Rectangle(left, top, 0.0, 0.0) Dim f As New Font(TextBox.Font.ToString, TextBox.Font.Size, TextBox.Font.Style) Dim brush As New SolidBrush(TextBox.ForeColor) Dim StrIn As String Dim StrInSize As SizeF If IsPrinting = False Then StrIn = TextBox.Text For i As Integer = 0 To Len(StrIn) If i < Len(StrIn) Then Coll.Add(StrIn.Substring(i, 1)) ElseIf i = Len(StrIn) Then Coll.Add(StrIn.Substring(i)) End If Next IsPrinting = True End If If IsPrinting = True Then For i As Integer = PosInStr To Coll.Count - 1 StrIn = Coll.Item(i).ToString StrInSize = e.Graphics.MeasureString(StrIn, f, 8, StringFormat.GenericTypographic) rect.Width = StrInSize.Width e.Graphics.DrawString(StrIn, f, brush, rect.X, rect.Y) If rect.X + StrInSize.Width < pagewidth Then rect.X += StrInSize.Width ElseIf rect.X + StrInSize.Width >= pagewidth Then rect.X = left rect.Y += StrInSize.Height End If If rect.Y + StrInSize.Height > pageheight Then PosInStr = i + 1 e.HasMorePages = True Exit For ElseIf rect.Y + StrInSize.Height < pageheight Then e.HasMorePages = False If i = Coll.Count - 1 Then IsPrinting = False Coll.Clear() PosInStr = 0 End If End If Next End If End Sub End Class Dieser Tipp wurde bereits 25.400 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |