contains

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    hallo ich stell mir gerade etwas blöde an xdd warscheinlich nicht meine zeit hier zur Frage ich will eine search funktion in mein notepad einbauen nun habe ich das so gemacht habe ein textbox und ein search button so habe ich das bisher


    VB.NET-Quellcode

    1. If RTB1.Text.Contains(TextBox1.Text) Then
    2. ' wie sage ich das programm hier am besten das er mit die buchstaben markiere soll die er als conatin erkannt hat ^^
    3. End If


    eig. macht man das ja so

    VB.NET-Quellcode

    1. RTB1.SelectAll()


    naja weiß jetz nicht genau wie ich das mach ist warscheinlich nicht mehr meine Zeit heute :)


    Mit Freundlichen Gruß
    RichTextBox1.Find ist eine Funktion, der du den zu suchenden Text angibst, und der dir die Position des Textes in der Richtextbox zurückgibt. Ein optionaler Parameter ist auch der Start der Suche, falls dein Text mehrmals vorkommt.
    Markieren musst du mit diesen Daten dann selber.

    ist warscheinlich nicht mehr meine Zeit heute

    Im Forum posten ist hier aber nicht das Richtige. Logisch wäre, es am nächsten Tag mit dem Objektbrowser, MSDN und einem Handbuch erneut zu versuchen. ;)
    habe es mal so gemacht


    VB.NET-Quellcode

    1. Public Sub Markiere(Wort as string, Farbe as color)
    2. dim mc as MatchCollection = Regex.Matches(rtb.text.tolower, wort.tolower)
    3. For each m as Match in mc
    4. rtb.select(m.index, m.length)
    5. rtb.selectioncolor = farbe
    6. rtb.select(rtb.text.length, 0)
    7. rtb.selectioncolor = color.black
    8. Next
    9. End Sub



    VB.NET-Quellcode

    1. If Richtextbox1.text.contains (Textbox1.text) Then
    2. Markiere(Textbox1.text, Color.Blue)
    3. End If


    so aber wenn ich die suche starte passiert garnichts ich muss erst über den ganzen text gehen also ganzen text oder teil markieren und er macht das den blau also was er gefunden hat die container aber ich will das er es gleich markiert oder wenigsten mit ein hintergrund versehrt ^^



    VB.NET-Quellcode

    1. Dim indx = RTB1.Text.IndexOf(TextBox1.Text)
    2. If indx < 0 Then Return


    das ist natürlich auch eine Idee hmm gibt es noch bessere vorschläge ? :thumbsup:

    underground77 schrieb:

    gibt es noch bessere vorschläge ?

    nein - Regex ist natürlich das beste - hatte ich dir nurnich mit kommen wollen.
    Allerdings sollteste RegexOption.IgnoreCase einstellen, dann brauchst du nicht alle Texte durch die Tolower-Mühle zu drehen.

    Die Contains-Abfrage kannstejetzt auch weglassen, denn wenn der Regex nix findet, markierterja eh nix.

    wass soll

    VB.NET-Quellcode

    1. rtb.select(rtb.text.length, 0)
    2. rtb.selectioncolor = color.black
    bezwecken??