1

我目前能够搜索一些文本并找到第一个匹配的字符串。这从左到右移动,每次单击“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

然后用户按下“查找下一个”。这是代码。

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

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

4

1 回答 1

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
于 2012-11-19T14:35:53.937 回答