Farbige wörter zählen in einer Richtextbox

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VBHunter.

    Farbige wörter zählen in einer Richtextbox

    Hallo leute,

    ich will ein Text durchsuchen in einer Richtextbox.

    hier das Beispiel was in der Richtextbox steht:
    "Hey man wo ist mein Auto?"

    darunter habe ich eine Suchfunktion (mit farbmakierung) wo ich wörter aus der Richtextbox suchen kann. Bsp: "mein"

    rechts daneben hab ich ein Zähler(Label) der mir sagen soll wie oft er das Suchwort gefunden hat.

    Wenn ich jetzt mein Button anklicke das er das Wort "mein" suchen soll, zeigt er es mir farbig an. Jedoch steht im Label die Zahl "6" da er ja 6 Wörter gefunden hat.

    Wie kann ich es machen das er nur die Farbigen wörter zählt?



    Hier der Code:

    VB.NET-Quellcode

    1. Private Sub Suchen_Click(sender As Object, e As EventArgs) Handles Suchen.Click
    2. Dim startText As Integer = 0
    3. Dim endText As Integer
    4. Dim wordcount As Integer = RichTextBox1.Text.Split(" "c).Length
    5. endText = RichTextBox1.Text.LastIndexOf(TextBox1.Text)
    6. While startText < endText
    7. RichTextBox1.Find(TextBox1.Text, startText, RichTextBox1.TextLength, RichTextBoxFinds.MatchCase)
    8. RichTextBox1.SelectionBackColor = Color.Brown
    9. startText = RichTextBox1.Text.IndexOf(TextBox1.Text, startText) + 1
    10. End While
    11. lbl_suchsumme.Text = wordcount
    12. End Sub


    vielen dank im vorraus für eure Poasts

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VBHunter“ ()

    VB.NET-Quellcode

    1. Private Sub Suchen_Click(sender As Object, e As EventArgs) Handles Suchen.Click
    2. Dim startText As Integer = 0
    3. Dim endText As Integer
    4. Dim wordcount As Integer = RichTextBox1.Text.Split(" "c).Length
    5. endText = RichTextBox1.Text.LastIndexOf(TextBox1.Text)
    6. Dim ctr As Integer
    7. While startText < endText
    8. RichTextBox1.Find(TextBox1.Text, startText, RichTextBox1.TextLength, RichTextBoxFinds.MatchCase)
    9. RichTextBox1.SelectionBackColor = Color.Brown
    10. ctr += 1
    11. startText = RichTextBox1.Text.IndexOf(TextBox1.Text, startText) + 1
    12. End While
    13. Lbl_suchsumme.Text = ctr.ToString
    14. End Sub


    In deinem Beispiel wird doch nur braun eingefärbt, da reicht ein Zähler. Wenn du verschiedene Fälle mit verschiedenen Farben hast, brauchst du halt für jeden Fall einen eigenen Zähler.

    PS: Ich würde dir dringend raten Option Strict auf on zu setzen.
    Option strict = on

    If it's stupid and it works it ain't stupid.