vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Stringlänge 
Autor: Preisser
Datum: 13.12.11 20:20

Hallo,

damit abschließende Leerzeichen in die Größenberechnung mit einbezogen werden, muss ein StringFormat-Objekt verwendet werden, bei dem als FormatFlag StringFormatFlags.MeasureTrailingSpaces gesetzt ist.

Ich verwende beim Zeichen mit GDI+ meistens ein GenericTypographic-StringFormat, um den überschüssigen Leerraum, den MeasureString ansonsten hinzufügt, sowie die "Aufblähung" von Leerzeichen, die wohl aus der unterschiedlichen Renderungsweise von GDI+ und GDI entstehen, zu vermeiden.

z.B.
    Private Sub Form1_Click(ByVal sender As Object, ByVal e As  _
      System.EventArgs) Handles Me.Click
        Dim gra As Graphics = Me.CreateGraphics()
 
        iPos += 1
        If iPos > sStr.Length Then iPos = 0
 
        gra.Clear(Me.BackColor)
        Dim strFormat As New StringFormat(StringFormat.GenericTypographic) With _
          {.FormatFlags = StringFormatFlags.MeasureTrailingSpaces}
        gra.DrawString(sStr, Me.Font, Brushes.Black, 0, 0, strFormat)
 
        Dim teilStr As String = sStr.Substring(0, iPos)
        Dim iX As Integer = CInt(gra.MeasureString(teilStr, Me.Font, _
          Integer.MaxValue, strFormat).Width)
        gra.DrawLine(oPen, iX, 0, iX, 20)
 
        gra.DrawString("Position   = " & iPos, Me.Font, Brushes.Black, 0, 30)
        gra.DrawString("Teilstring = >" & teilStr  & "<", _
          Me.Font, Brushes.Black, 0, 50)
 
        gra.Dispose()
    End Sub
(Zeichen sollte man sonst normalerweise im Paint-Event)

Beitrag wurde zuletzt am 13.12.11 um 20:37:33 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Stringlänge1.794Ne kölsche Jung13.12.11 19:07
Re: Stringlänge1.087JangoF13.12.11 19:47
Re: Stringlänge1.172Preisser13.12.11 20:20
Re: Stringlänge1.085Ne kölsche Jung13.12.11 20:42
Re: Stringlänge1.056ModeratorFZelle14.12.11 09:23

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel