C#创建查找下一个函数

时间:2010-12-06 07:53:55

标签: c# find

如何创建查找下一个功能?

从我当前的代码中,如果找到来自textBoxSearch的单词richTextBoxBrowsing,则该单词将在richTextBoxBrowsing中突出显示。

但如果发现同一个单词中有多个单词,我只能看到第一个单词。因此,我想按下按钮F3来查找下一个单词,它将逐个突出显示,直到richTextBoxBrowsing结束。

提前致谢!

        String s1 = textBoxSearch.Text.ToLower();
        int startPos = richTextBoxBrowsing.Find(s1);
        int length = s1.Length;

        if (startPos > -1)
        {
            MessageBox.Show("Word found!");
            richTextBoxBrowsing.Focus();
            richTextBoxBrowsing.Select(startPos, length);
        }

        else
        {
            MessageBox.Show("Word not found!");
        }

3 个答案:

答案 0 :(得分:3)

诀窍是保持最后一个已知的索引(即startPos的最后一个值) - 也许在表单级别的字段中,然后你可以使用:

int startPos = Find(s1, lastIndex + 1, RichTextBoxFinds.None);

(其中lastIndex为-1会导致它从头开始)

答案 1 :(得分:2)

您必须保存上一次搜索的状态,例如记住以前找到的项目的索引。每当搜索字符串更改时,您将起始索引重置为-1。

答案 2 :(得分:1)

这是我为“查找下一个”功能所获得的。它在VB.net中,因为我正在研究TAFE项目,但您可以轻松地将其转换为C#。它为我创造了奇迹。

我有一个名为'RichTextBox1'的主要文本框,文本是,然后我有一个名为'ToolStripSearchTextBox'的文本框,我在其中输入我想要搜索的内容,还有一个名为'ToolStripButton2'的按钮,调用方法'FindNext_Click()'点击时。

由于“RichTextBoxFinds.None”,此“查找下一个”功能不区分大小写。随意改变,如你所愿。

pod update