VB 5/6-Tipp 0473: Farbigen Text in RichTextBox einfügen
von Florian Rittmeier
Beschreibung
Einer der Vorteile gegenüber der normalen Textbox ist es, daß die RichTextBox freie Textformatierungen erlaubt. Dazu gehört natürlich auch eine Textfarbe. Hier wird eine einfache Routine vorgestellt, wie man farbigen Text an die aktuelle Cursorposition einfügt.
Ergänzung am 15. Oktober 2002:
Die länge des Textes wir am Anfang einmal gespeichert, das erspart rechenzeit, da es schneller ist, als überall len(strText) auszufürhen
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- ' Die Komponente 'Microsoft Rich Textbox Control 6.0 (RICHTX32.OCX)' wird benötigt. '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Schaltfläche "Command4" ' Steuerelement: Schaltfläche "Command3" ' Steuerelement: Schaltfläche "Command2" ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Textfeld "Text1" ' Steuerelement: RichTextBox "RichTextBox1" Option Explicit 'Copyright by Florian Rittmeier '01 & '02 @ ActiveVB.de Private Sub AddText(ByRef RTFBox As RichTextBox, ByVal strText As String, ByVal tColor As Long) Dim lngLength As Long Dim lngSelStart As Long Dim lngTLength As Long lngLength = Len(strText) 'Ergänzung am 15. Oktober 2002: 'Die länge des Textes wir am Anfang einmal gespeichert, 'das erspart rechenzeit, da es schneller ist, als überall 'len(strText) auszufürhen lngTLength = Len(strText) lngSelStart = RTFBox.SelStart 'Cursorposition merken RTFBox.SelLength = 0 'Nichts markieren RTFBox.SelText = strText 'Den Text einfügen RTFBox.SelStart = lngSelStart 'Cursorposition zurückstellen RTFBox.SelLength = lngTLength 'Den eingefügten Text markieren RTFBox.SelColor = tColor 'Farbe setzen RTFBox.SelLength = 0 'Nichts markieren RTFBox.SelStart = lngSelStart + lngTLength 'Cursor ans Ende des _ 'eingefügten Textes setzen End Sub Private Sub Command1_Click() AddText RichTextBox1, Text1.Text, vbBlack End Sub Private Sub Command2_Click() AddText RichTextBox1, Text1.Text, vbRed End Sub Private Sub Command3_Click() AddText RichTextBox1, Text1.Text, vbGreen End Sub Private Sub Command4_Click() AddText RichTextBox1, Text1.Text, vbBlue End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 6 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Semml am 05.03.2009 um 21:31
Hi !
Bekomme folgende fehlermeldung: "SelStart" ist kein Member von "System.Windows.Forms.Rich TextBox".
mfg
Semml
Kommentar von Tim Hartig am 23.04.2008 um 01:44
Bei mir kann er nichts mit der TextBox-Eigenschaft "SelColor"
anfangen. also hier so RTFBox.SelColor heißts, "Benutzerdefinierter Typ nicht definiert!"
HILFE !! :/
Kommentar von Gebhard am 25.02.2003 um 15:36
Hat prima funktioniert.
Kann man auf diese Weise auch die Background color setzen?
Kommentar von Marco Stielow am 25.01.2003 um 11:49
Wie kann ich die Hintergrundfarbe eines bestimmten Bereiches (nicht der gesamten RT-Box) setzem?
Kommentar von Tobi am 23.10.2002 um 10:02
Bekomm dauernd die Fehlermeldung "Variable nicht definiert".
Kommentar von Ausbrecher am 15.05.2002 um 17:29
Wie mache ich das aber jetzt, das wenn ich direkt in die RTB einen text eingebe, das dieser dann sich rot färbt. es darf sich aber nur bei speziellen wörtern rot färben, ansonsten soll er schwarz sein
(Wie bei VB wenn ich 'public' eingebe, das färbt sich ja auch blau)
ich hoffe ihr könnt mir weisterhelfen