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
4

1 回答 1

0

InStr函数有一个参数,可让您从特定索引开始搜索。在这种情况下,它将是找到的单词的索引加上单词本身的长度。

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

在这种情况下,我们从 position 开始Find + Len(Search)。未经测试,但我认为这应该做你想要的。

可能是过早的优化,但您可以存储搜索词的长度,因此不必在每次Next按下按钮时都计算它。

于 2013-03-18T01:04:13.737 回答