如何创建查找下一个功能?
从我当前的代码中,如果找到来自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!");
}
答案 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