我目前能够搜索一些文本并找到第一个匹配的字符串。这从左向右移动,每次单击“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
以上两段代码完美地用于搜索文档。我现在想让它成为可能,以便用户可以向上搜索。这是如何实现的? 任何帮助将非常感激。提前谢谢!
答案 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