Die Länge des Textes in einer TextBox, deren
MultiLine-Eigenschaft gleich True ist, oder einer RichTextBox
(Text-Eigenschaft) schließt gegebenenfalls vorhandene
Zeilenumbrüche ein. Wenn Sie die Anzahl der Zeichen ohne
Berücksichtigung der Zeilenumbrüche brauchen, müssen Sie zuerst
diese aus dem Text entfernen. Ab Visual Basic 6 könne
Sie dazu die Replace-Funktion verwenden, die alle Zeilenumbrüche (vbCrLf)
durch einen leeren String ersetzt.
Die Funktion LenMultiLineText erledigt dies in einem Rutsch einer
TextBox oder einer RichTextBox, sogar wahlweise auch nur für den
markierten Bereich (Eigenschaft SelText).
Sie übergeben das betreffende Steuerelement und erhalten die
"nackte" Anzahl der Zeichen als Rückgabewert. Wenn Sie im
optionalen Parameter OnlySelected True übergeben, erhalten Sie die
Anzahl der Zeichen in der aktuellen Markierung ohne Zeilenumbrüche.
Public Function LenMultiLineText(TxtControl As Object, _
Optional ByVal OnlySelected As Boolean) As Long
If OnlySelected Then
LenMultiLineText = Len(Replace(TxtControl.SelText, vbCrLf, ""))
Else
LenMultiLineText = Len(Replace(TxtControl.Text, vbCrLf, ""))
End If
End Function
 |
Die Funktion LenMultiLineText liefert die
Anzahl der Zeichen bzw. der markierten Zeichen ohne
Zeilenumbrüche

|
Die Funktionen LenTXTMultiLineText und LenRTBMultiLineText sind
spezialisierte Varianten der Funktion. Hier sind die
Übergabe-Parameter für das betreffende Steuerelement jeweils
direkt als TextBox bzw. RichTextBox deklariert, statt allgemein als
Datentyp Object. Verwenden Sie diese Funktionen, wenn Sie auf eine
höhere Performance Wert legen.
Public Function LenTXTMultiLineText(Txt As TextBox, _
Optional ByVal OnlySelected As Boolean) As Long
If OnlySelected Then
LenTXTMultiLineText = Len(Replace(Txt.SelText, vbCrLf, ""))
Else
LenTXTMultiLineText = Len(Replace(Txt.Text, vbCrLf, ""))
End If
End Function
Public Function LenRTBMultiLineText(rtb As RichTextBox, _
Optional ByVal OnlySelected As Boolean) As Long
If OnlySelected Then
LenRTBMultiLineText = Len(Replace(rtb.SelText, vbCrLf, ""))
Else
LenRTBMultiLineText = Len(Replace(rtb.Text, vbCrLf, ""))
End If
End Functio n
 |
Bei den Funktionen LenTXTMultiLineText und
LenRTBMultiLineText ist das zu übergebende Steuerelement
entsprechend deklariert

|

|