2013-03-18 2 views
1

Я написал основную форму поиска, которая ищет текст TextBox и выделяет первый экземпляр поискового запроса, если он найден, до сих пор у меня есть этот бит кода, но хотелось бы как-то ввести «следующую» кнопку в форму, которая при нажатии будет переходить к следующему экземпляру, снова нажать и перейти к следующему и т. д. Может ли кто-нибудь мне помочь?Добавить кнопку «Далее» для поиска формы

Dim Search As String 
     Dim Find As String 
     Search = TextBox1.Text 
     Find = InStr(Form1.TextBox1.Text, Search) 
     If Find Then 
      Form1.TextBox1.Focus() 
      Form1.TextBox1.SelectionStart = Find - 1 
      Form1.TextBox1.SelectionLength = Len(Search) 
     Else 
      MsgBox("Can't find the text:" & Environment.NewLine & Search) 
     End If 

ответ

0

InStr функция имеет параметр, который позволяет начать поиск с определенного индекса. В этом случае будет найден индекс слова, а также длина самого слова.

Find = InStr(Find + Len(Search), Form1.TextBox1.Text, Search) 

В этом случае мы начинаем с позиции Find + Len(Search). Непроверенный, но я думаю, что он должен делать то, что вы хотите.

Возможно, преждевременная оптимизация, но вы можете сохранить длину поискового запроса, поэтому ее не нужно рассчитывать каждый раз при нажатии кнопки Next.

Смежные вопросы