Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB2010 - VB2015 | 27.04.20 |
Tipp zu spezieller Anwendung der RichTextbox Der Tipp zeigt die Codierung zum Färben von Teilen von Zeilen im RTF-Text. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 1.973 |
ohne Homepage | System: Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Die RTF-Box eignet sich zum formatierten Anzeigen von Text, u.a. auch mittels coloriertem Text.
Die Aufgabe bestand darin, ab einem bestimmten Zeichen in einer Zeile den Text andersfarbig darzustellen. Der folgende Code durchsucht in eine gesamten RTF-Text jede Zeile nach dem bestimmten Zeichen und färbt dann den Rest der Zeile mit einer gewünschten Farbe.
Hier der Code:
Dim rtfBox As RichTextbox Dim myText As String = myString ' myText sei ein Text von größerer Länge Dim l As String ' der Text einer einzelnen Zeile Dim myColor As Color = Color.Red Dim i, k As Integer ' hier im Beispiel als bestimmtes Zeichen das ' (Apostroph) Dim myChar As String = "'" With rtfBox .Text = myText .SelectAll() .WordWrap = False .Select(0, 0) For j As Integer = 0 To .Lines.Count - 1 ' eine Zeile selektieren .Select(.GetFirstCharIndexFromLine(j), .Lines(j).Length) l = .SelectedText ' eine Zeile des Textes If l <> "" Then i = l.IndexOf(myChar) ' Position von myChar in der Zeile If i >= 0 Then k = l.Length ' Länge der Zeile ' Zeilenrest selektieren .SelectionStart = .GetFirstCharIndexFromLine(j) + i .SelectionLength = k - i .SelectionColor = myColor ' Zeilenrest färben End If End If Next End With