我写了一个基本的搜索表单,它搜索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 :(得分:0)
InStr函数有一个参数,可让您从特定索引开始搜索。在这种情况下,它将是已找到的单词的索引加上单词本身的长度。
Find = InStr(Find + Len(Search), Form1.TextBox1.Text, Search)
在这种情况下,我们从位置Find + Len(Search)
开始。未经测试,但我认为应该做你想要的。
可能是过早优化但您可以存储搜索词的长度,因此每次按下Next
按钮时都不必计算。