Страница: 1 |
Страница: 1 |
Вопрос: Поиск в TextBox
Добавлено: 13.07.10 16:36
Автор вопроса: I'm
Ребят, не могу допереть, помогите.
На форме есть кнопка и 2 текстбокса
Нужно организовать поиск в одном из них по нажатию кнопки (искать нужно то что введенно в другой текстобокс)
Ну вообщем сделать обычный поиск , как например в блокноте....в блокноте есть текст, нажали контрол + F, вылезло окошко, туда записала что нужно найти, жмем на кнопку, если это сочетание (слово, буква, знак...неважно) - есть то это сочетание выделяется в текстбоксе где находися сам текст, если нет - то соответственно мсжбокс "что нету нефига"..
Вот и не могу не как допереть...Знающий человек подсказал что можно сделать это через Insert,но вот как сделать не пойму...
Помогите кодом или советом
сделал вот так, с помощью функции Spli...
НО находит только слова (если такие конечно имеются
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim text As String = CStr(TextBox1.Text)
Dim int As Integer, cikl As Integer
Dim str() As String = Split(text, " ")
Dim ishem As String = CStr(TextBox2.Text)
For cikl = 0 To str.Length - 1
int = int + Len(str(cikl))
If str(cikl) = ishem Then
TextBox1.Select(int - Len(str(cikl)) + cikl, Len(str(cikl)))
TextBox1.Select()
Exit Sub
End If
Next
End Sub
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Dark Engine
ICQ: 343191665
Вопросов: 51
Ответов: 98
Web-сайт:
Профиль | | #1
Добавлено: 13.07.10 17:03
Instr (<нач>, <источник>, <искомое>
Ищет одну строку в другой и выдает найденную позицию начала искомой строки в исходной и ноль, если не нашлось. При желании можно даже убрать цикл, функция "Искать далее" подставляет в первый аргумент позицию конца найденной (то есть значение функции + длина строки во втором текстбоксе)
Номер ответа: 2
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #2
Добавлено: 13.07.10 17:06
а пример привести можешь?
Номер ответа: 3
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #3
Добавлено: 13.07.10 17:12
' Поиск в TextBox
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Вычисляем начало (первый символ искомого слова или строки)
 im SelectStart As Integer = InStr(TextBox1.Text, TextBox2.Text, vbTextCompare)
' Вычисляем длину искомого символа, слова или строки
 im SelectLen As Integer = Len(TextBox2.Text)
If SelectStart > 0 Then ' Если ищем не пустое место, то
TextBox1.Focus() ' фокус на TextBox и
TextBox1.Select(SelectStart - 1, SelectLen) ' выделяем искомый фрагмент.
End If
End Sub
Номер ответа: 4
Автор ответа:
Dark Engine
ICQ: 343191665
Вопросов: 51
Ответов: 98
Web-сайт:
Профиль | | #4
Добавлено: 13.07.10 17:12
Первая цифра должна быть 3, вторая кажется 9 (просто сейчас нет возможности проверить, он выдает абсолютную позицию в строке или относительную от точки поиска).
Номер ответа: 5
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #5
Добавлено: 13.07.10 17:13
Номер ответа: 6
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #6
Добавлено: 13.07.10 17:13
Номер ответа: 7
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #7
Добавлено: 16.07.10 12:49
Очень трудоёмкое и мыслезатрачиваемое изменение
Номер ответа: 8
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #8
Добавлено: 16.07.10 13:24
хотя Дмитрий Юпатов привел более конкретный код.
Номер ответа: 9
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #9
Добавлено: 16.07.10 17:11
Мда, это только у меня возникла мысль что чел пишет на .NET?
И до сих пор никто не сказал про рассово верную функцию String.IndexOf
Номер ответа: 10
Автор ответа:
Дмитрий Юпатов
Вопросов: 4
Ответов: 457
Web-сайт:
Профиль | | #10
Добавлено: 16.07.10 22:57
а ты соседнюю тему почитай
я выложил решение из бородатого проекта.
Выкладывай свое, может и тебе благодарности достанутся