Mittels Button nach Suchbegriff in Textbox suchen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von hjerteblod.

    Mittels Button nach Suchbegriff in Textbox suchen

    Hallo ihr,

    ich lese schon länger mit und konnte schon häufig Hilfe hier finden, dafür schon mal ein großes Dankeschön.
    Nun habe ich selbst ein Problem, falls ich eine ähnliche Frage im Forum übersehen habe, gern verweisen, dann lösche ich das hier wieder.

    Meine Ausgangssituation: Ich habe zwei Textboxen, eine wo der gesamte Text geladen wird und eine, wo der Suchbegriff eingegeben wird.
    Via Suchebutton soll der Suchbegriff im gesamten Text gesucht werden. (Ähnlich der Funktion str + f)
    Hat auch funktioniert, allerdings über den Umweg, das ich zwei Buttons nehmen musste. Einen für die Suche, einen für die zweite Suche.

    Ich würde es nun gern so schreiben, dass ich nur auf einen Button klicke und der bei jedem Klick weitersucht und nicht nach einem Begriff halt macht.

    Puh, ich hoffe das war jetzt verständlich.

    VB.NET-Quellcode

    1. Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click
    2. Dim suchwort As String = txtboxsuche.Text 'Wort das in Text gesucht werden soll
    3. Dim position As Integer
    4. Dim suchstart As Integer = 0
    5. Dim anzahl As Integer = 0
    6. Try
    7. Do
    8. position = TxtBoxBig.Text.IndexOf(suchwort, suchstart)
    9. suchstart = position + 1
    10. TxtBoxBig.Focus()
    11. TxtBoxBig.SelectionStart = TxtBoxBig.Text.IndexOf(suchwort)
    12. TxtBoxBig.SelectionLength = suchwort.Length
    13. If position = -1 Then
    14. Exit Do
    15. Else
    16. anzahl += 1
    17. End If
    18. Loop
    19. lblAnzeige.Text = "Häufigkeit des gesuchten Wortes:" & anzahl
    20. Catch ex As Exception
    21. MsgBox("nicht gefunden")
    22. End Try
    23. End Sub
    24. Private Sub BtnWeiter_Click(sender As Object, e As EventArgs) Handles BtnWeiter.Click
    25. Dim suchwort As String = txtboxsuche.Text
    26. Dim position As Integer
    27. Dim endeErstesWort As Integer
    28. position = TxtBoxBig.Text.IndexOf(suchwort)
    29. endeErstesWort = position + suchwort.Length
    30. TxtBoxBig.Focus()
    31. TxtBoxBig.SelectionStart = TxtBoxBig.Text.IndexOf(suchwort, endeErstesWort)
    32. TxtBoxBig.SelectionLength = suchwort.Length
    33. End Sub



    Kann mir jemand einen Hint geben, wo ich ansetzen muss um bei Klick jedesmal die neue Position für das Suchwort zu benutzen?
    Danke fürs lesen, grüße h.