如何使查找反向方法继续移动?

时间:2012-11-18 09:42:13

标签: vb.net replace

我目前能够搜索一些文本并找到第一个匹配的字符串。这从左向右移动,每次单击“btnFindNext”时,将选择下一个匹配的字符串。

但是,我现在想要使搜索从右向左移动。我正在使用RichTextBoxFind.Reverse方法,实际上这会从右侧选择第一个匹配的字符串。但是,当用户再次单击“btnFindNext”时,不会选择下一个匹配的字符串。有什么想法吗?

编辑:我添加了我目前用于从左到右选择的代码。

用户首先按“查找”,这是代码。

 startFrom = RichTextBox.Find(textToFind.Text,
 RichTextBox.SelectionStart, RichTextBoxFinds.None)

If lastposition <> -1 Then
RichTextBox.SelectionStart = startFrom
RichTextBox.SelectionLength = textToFind.Text.Length
startFrom = startFrom + 1
    Else
        MsgBox(cboFFindWhat.Text & " Not Found")
    End If

然后用户按下“FindNext”。这是代码。

startFrom = RichTextBox.Find(textToFind.Text, startFrom, RichTextBoxFinds.None)
If startFrom <> -1 Then
RichTextBox.SelectionStart = startFrom
RichTextBox.SelectionLength = textToFind.text.length
startFrom = startFrom + 1
Else
MsgBox(textToFind.Text & " Not Found")
End If

以上两段代码完美地用于搜索文档。我现在想让它成为可能,以便用户可以向上搜索。这是如何实现的? 任何帮助将非常感激。提前谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用此代码作为反向部分。每次运行它时,都会找到上一次出现的情况。 (然后当你到达开始时它再次开始。)

Dim start As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    If start = 0 Then start = RichTextBox1.Text.Length
    start = RichTextBox1.Find("findme", 0, start, RichTextBoxFinds.Reverse)
    MessageBox.Show(start.ToString)
End Sub