Benutzer mit den meisten Antworten
Suchfunktion für TextBox1

Frage
-
Hallo,
Ich bin gerade an einem kleinen Programm, mit dem man einen Text (TextBox1.Text) durchsuchen kann.
So jetzt kommt meine Frage...
Ich möchte, das wenn man auf einen Button /button1) klickt der Text der in der Textbox (TextBox1.Text) steht nach dem Wort durchsucht wird, welches in der TextBox2 steht und anschließend das gefundene Wort markiet wird. Ich würde das ganze gerne mit dem .select-Funktion machen.
Danke schonmal...
MFG Stephan R.
Antworten
-
BigG-FTW Schrieb: Der Nachteil von diesem Code ist jedoch, dass immer nur das erste Wort, welches übereinstimmt sellektiert wird jedes weitere leider nicht. Groß- Kleinschreibung muss leider auch beachtet werden Oh, das ist wahr. Zumindest den Teil mit Groß-/Kleinschreibung kann man beheben, wenn man jeweils hinter TextBoxx.Text noch ein ".ToUpper" oder ".ToLower" einfügt (was man halt lieber mag). Das bewirkt dann dass der ganze Text zu Groß-/Kleinbuchstaben verändert wird.@"unten stehender Code"Also, zu erst wird der Text aus Textbox1 genommen und in einer Version aus nur Kleinbuchstaben wird überprüft, ob eine "Kleinbuchstabenversion" des Textes aus Textbox2 darin vorkommt. Ist dies der Fall, so wird in Textbox1 das erste Vorkommen des Textes selectiert. Am Ende bekommt noch die Textbox1 den Focus, sodass man die Selection sehen kann. Das ganze wird ausgelöst durch einen Klick auf Button1.Zu dem mit Mehrfachselektion, kann ich leider auch nicht helfen. Der veränderte Code hieße jetzt folgendermaßen:Code SnippetPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_ Handles Button1.ClickIf Me.TextBox1.Text.ToLower.Contains(Me.TextBox2.Text.ToLower) ThenMe.TextBox1.Select(Me.TextBox1.Text.ToLower.IndexOf(Me.TextBox2.Text.ToLower), Me.TextBox2.Text.Length)Me.TextBox1.Focus()End IfEnd Sub
Alle Antworten
-
Hi,erst mal solltest du prüfen, ob der Text in Textbox1 überhaupt das zu suchende enthält, das machst du mit ".contains". Danach kannst du dann mit ".IndexOf()" auf die Position zugreifen. Zum Schluss musst du noch den Focus auf Textbox1 setzen, da sonst die Auswahl nicht sichtbar ist. Dein Code lautet also:Code SnippetPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickIf Me.TextBox1.Text.Contains(Me.TextBox2.Text) ThenMe.TextBox1.Select(Me.TextBox1.Text.IndexOf(Me.TextBox2.Text), Me.TextBox2.Text.Length)Me.TextBox1.Focus()End IfEnd Sub
-
BigG-FTW Schrieb: Der Nachteil von diesem Code ist jedoch, dass immer nur das erste Wort, welches übereinstimmt sellektiert wird jedes weitere leider nicht. Groß- Kleinschreibung muss leider auch beachtet werden Oh, das ist wahr. Zumindest den Teil mit Groß-/Kleinschreibung kann man beheben, wenn man jeweils hinter TextBoxx.Text noch ein ".ToUpper" oder ".ToLower" einfügt (was man halt lieber mag). Das bewirkt dann dass der ganze Text zu Groß-/Kleinbuchstaben verändert wird.@"unten stehender Code"Also, zu erst wird der Text aus Textbox1 genommen und in einer Version aus nur Kleinbuchstaben wird überprüft, ob eine "Kleinbuchstabenversion" des Textes aus Textbox2 darin vorkommt. Ist dies der Fall, so wird in Textbox1 das erste Vorkommen des Textes selectiert. Am Ende bekommt noch die Textbox1 den Focus, sodass man die Selection sehen kann. Das ganze wird ausgelöst durch einen Klick auf Button1.Zu dem mit Mehrfachselektion, kann ich leider auch nicht helfen. Der veränderte Code hieße jetzt folgendermaßen:Code SnippetPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_ Handles Button1.ClickIf Me.TextBox1.Text.ToLower.Contains(Me.TextBox2.Text.ToLower) ThenMe.TextBox1.Select(Me.TextBox1.Text.ToLower.IndexOf(Me.TextBox2.Text.ToLower), Me.TextBox2.Text.Length)Me.TextBox1.Focus()End IfEnd Sub