Mit MeasureString Anzahl der Zeilen ermitteln

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von vbneuling88.

    Mit MeasureString Anzahl der Zeilen ermitteln

    Hallo Zusammen.

    die SuFu und Google haben mir bist jetzt nicht wirklich weitergeholfen

    Ich habe eine Druck-Klasse entworfen. Gedruckt werden Rechnungen und Angebote. Ich möchte herausfinden, wie viele Zeilen mein Text benötigt. Ein Rechteck, wo der Text gezeichnet werden darf wird vorgegeben. Ebenso kann ich mit MeasureString messen. Leider erhalte ich in der Höhe falsche werte.
    Hier mein Code, wie mir bis jetzt die Zeilenanzahl zurück gegeben wird

    Quellcode

    1. Private Sub WriteText(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs,
    2. ByRef Text As String,
    3. ByRef Options As Font_t,
    4. ByRef Zeile As UShort,
    5. ByRef Padding As UShort,
    6. ByRef Breite As UShort,
    7. ByRef Seite As UShort)
    8. 'Position ermitteln zum Zeichnen
    9. Const ZeilenFaktor As Byte = 12
    10. Dim Pos As Rectangle = New Rectangle(Padding, Zeile * ZeilenFaktor, Breite, height)
    11. Dim TextHoehe As UShort= e.Graphics.MeasureString(Text, New Font(Options.Name, Options.Size, Options.Style), Pos.Width).Height
    12. Dim VergleichHoehe As UShort= e.Graphics.MeasureString("W", New Font(Options.Name, Options.Size, Options.Style), Pos.Width).Height
    13. Dim Zeilen As UShort = TextHoehe / VergleichHoehe
    14. e.Graphics.DrawString(Text, New Font(Options.Name, Options.Size, Options.Style), Options.Color, Pos)
    15. Zeile += (Zeilen - 1)
    16. End Sub


    Mit TextHoehe wird die Höhe von dem zu druckendem Text ausgegeben. Mit VergleichHoehe erstell ich mir einen Vergleich, wie Hoch eine Zeile wird.
    Wenn ich jetzt TextHoehe / VergleichHoehe rechne, müsste ich doch normalerweise die Anzahl der Zeilen gekommen?

    Im Anhang ein Screenshot, welches den Fehler sichtbar macht. Der Code berechnet, das 22 Zeilen benötigt werden, jedoch werden 24 Zeilen benötigt
    Bilder
    • Unbenannt.JPG

      119,32 kB, 1.011×528, 121 mal angesehen

    vbneuling88 schrieb:

    wie viele Zeilen mein Text benötigt
    Gugst Du hier.
    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!