Bestimmte Textabschnitte färben

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Gugi.

    bei mir funktioniert das nicht.
    es wird am anfang schwarz geschrieben, wenn man den text eingibt, die gewählte schriftfarbe, und dann das was danach kommt wieder die selbe wie dem was man bei Find genommen hat, und es wird immer wieder markiert.
    du musst SelectionStart zwischenspeichern dann mit Find, Select und SelectionColor arbeiten anschließend wieder SelectionStartauf das zwischengespeicherte setzen und SelectionColor auf das alte(Schwarz) stellen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    So habs immer noch ned kapiert -.-
    Hab jetzt den code hier(auskommentiert, wo error kommt, ich mich nicht auskenne, etc.)

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
    3. RichTextBox1.SelectionStart ' Gibt Error
    4. RichTextBox1.Find("text") ' Kein Error
    5. RichTextBox1.Select() ' Kein Error
    6. RichTextBox1.SelectionColor = Color.Red ' Kein Error
    7. 'Weiter hab ichs ned verstanden.
    8. End Sub
    9. End Class
    Zwischenspeichern musst du wohl in einer Variable..

    VB.NET-Quellcode

    1. Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
    2. Dim selStart As Integer = RichTextBox1.SelectionStart ' Gibt Error
    3. RichTextBox1.Find("text") ' Kein Error
    4. RichTextBox1.Select() ' Kein Error
    5. RichTextBox1.SelectionColor = Color.Red ' Kein Error
    6. RichTextBox1.SelectionStart = selStart
    7. RichTextBox1.SelectionLength = 0
    8. RichTextBox1.SelectionColor = Color.Black
    9. End Sub

    was war daran so schwer, zu verstehen?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    guck dir doch am besten mal die Überladungen der Funktion an, du wirst merken, dass du da eine Variable Start angeben kannst(ab wo gesucht werden soll), ebenso gibt die Funktion einen Wert zurück vom Typ Integer, welcher angibt, wo der Text gefunden wurde, somit ist dein start Wert, der zuletzt zurückgegebene Wert der Find Funktion addiert mit der Länge des gesuchten Textes...

    das ganze kannst du in einer While Shleife verwirklichen(wenn die Funktion Find -1 zurückgibt wurde nichts mehr gefunden und du kannst aufhören ;))
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    jvbsl schrieb:


    das ganze kannst du in einer While Shleife verwirklichen(wenn die Funktion Find -1 zurückgibt wurde nichts mehr gefunden und du kannst aufhören


    Habs versucht zu verstehn :D und das ist rausgekommen(gibt error):

    VB.NET-Quellcode

    1. While RichTextBox1.Find("text" - 1)
    2. Dim selStart As Integer = RichTextBox1.SelectionStart
    3. RichTextBox1.Find(("text" - 1))
    4. RichTextBox1.Select()
    5. RichTextBox1.SelectionColor = Color.Red
    6. RichTextBox1.SelectionStart = selStart
    7. RichTextBox1.SelectionLength = 0
    8. RichTextBox1.SelectionColor = Color.Black
    9. End While
    10. End Sub


    mfg