Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Как сделать поиск и замену в TextBox?


Автор: Алеkc 2.5.2011, 21:41
Как сделать поиск и замену в TextBox?

Автор: diadiavova 3.5.2011, 03:19
Искать надо в строке, возвращаемой свойством Text (метод IndexOf), далее выделять найденную подстроку( свойства SelectionStart и SelectionLength), затем заменять с помощью свойства SelectionText.

Автор: Алеkc 3.5.2011, 21:39
Цитата(diadiavova @ 3.5.2011,  03:19)
Искать надо в строке, возвращаемой свойством Text (метод IndexOf)

набрасал такой код:
Код

Dim search As String = Me.TextBox1.Text
        Dim sel As Integer = Form1.TextBox1.Text.IndexOf(search)
        If sel <> -1 Then
            TextBox1.Select(sel, search.Length)
        End If
        Form1.TextBox1.Focus()

Но в TextBox ничего не выделяется

Автор: diadiavova 3.5.2011, 21:53
А Form1 это у тебя что: имя формы или имя класса? Если последнее, то оно и скомпилиться не должно, а если первое, то убедись, что эта переменная ссылается именно на тот экземпляр, в котором ты ждешь эффекта. Скорей всего тебе надо вместо Form1 написать Me. А вообще по этому куску трудно что-либо сказать.

Автор: Алеkc 3.5.2011, 22:02
Form1 - это первая форма с TextBox1, а Ме -  это форма с поиском

Автор: diadiavova 3.5.2011, 22:11
Цитата(Алеkc @  3.5.2011,  23:02 Найти цитируемый пост)
Form1 - это первая форма с TextBox1, а Ме -  это форма с поиском 

Не совсем понял, что в чем ты собираешься искать, скорей всего все сделал наоборот. Тот текст в котором надо искать подстроку - это та сторока, у которой ты вызываешь метод IndexOf, сам текст подстроки поиска передается этому методу как аргумент. То есть, если тебе надо найти индекс слова "world" в строке "Hello world", то делается это так
Код

Dim index = "Hello world".IndexOf("world")

а не наоборот.

Добавлено через 3 минуты и 20 секунд
В аттаче пример. В большое поле вводи большой текст, в малое - строку поиска и по нажатию кнопки первое вхождение строки будет выделяться.

Автор: Алеkc 4.5.2011, 16:14
Спасибо, разобрался

Автор: krewin 6.5.2011, 11:40
вот еще способ номер два
Код

Dim Txt As String = "В этом тексте находится (искоемое значение тут) для многновенной заменны"
Dim Finder As String = "искоемое значение тут"
textbox1.text = Replace(Txt, Finder, "Заменить текстом, пишем тут")

Автор: Алеkc 8.5.2011, 10:48
Цитата(krewin @ 6.5.2011,  11:40)
вот еще способ номер два

Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)