创建搜索并浏览每个结果

时间:2014-10-27 03:58:43

标签: vb.net search textbox richtextbox

基本上我有一个RichTextBox,TextBox和一个Button。 RichTextBox中包含一些文本,Textbox用于键入单词,按钮用于查找单词。到目前为止我用的是:

Dim index As Integer = 0
Dim temp As String = txtbx_Write.Text
txtbx_Write.Text = String.Empty
txtbx_Write.Text = temp

While index < txtbx_Write.Text.LastIndexOf(TextBox1.Text)
  txtbx_Write.Find(TextBox1.Text, index, txtbx_Write.TextLength, RichTextBoxFinds.None)
  txtbx_Write.SelectionBackColor = Color.DarkGray
  index = txtbx_Write.Text.IndexOf(TextBox1.Text, index) + 1
End While

基本上这是做什么的,当我输入例如&#34;&#34;,如果有&#34;&#34;&#34;在RichTextBox中,它将为该单词设置一个背景颜色,它将为每个&#34;&#34;字。

我想要做的是,当我输入单词&#34;&#34;时,会有一个标签显示结果的数量,并且每次用户点击&#34 ;查找与#34;按钮,它将选择单词&#34;&#34;并继续选择并继续前进,直到不再有。

非常类似于原生记事本查找功能,它选择并浏览每个单词。

1 个答案:

答案 0 :(得分:4)

不确定你要对那个临时变量做什么......你可能想要写一些东西来清除背景颜色。

无论如何,你可以为你的&#34;发现&#34;按钮:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If Not RichTextBox1.Focused Then
        RichTextBox1.Focus()
    End If
    RichTextBox1.Find(TextBox1.Text, RichTextBox1.SelectionStart + RichTextBox1.SelectionLength, RichTextBoxFinds.None)
End Sub

了解更多详情,了解MSDN中的查找方法。

编辑:为了找到点击结果的数量,您可以简单地计算&#34;突出显示&#34; while循环。因为您必须通过所有单词来突出显示它们,所以信息已经存在。

示例代码:

Dim index As Integer = 0
Dim count As Integer = 0
While index < RichTextBox1.Text.LastIndexOf(TextBox1.Text)        
    RichTextBox1.Find(TextBox1.Text,index,RichTextBox1.TextLength, 
                      RichTextBoxFinds.None)
    RichTextBox1.SelectionBackColor = Color.DarkGray
    index = RichTextBox1.Text.IndexOf(TextBox1.Text, index) + 1
    count = count + 1
End While

计数将保留结果金额。