在我的C#应用程序中有一个日志窗口。我在表单中实现了一个查找关键字功能,它可以搜索RichTextBox
中所有匹配的文本。现在我想构建一个功能来搜索RichTextBox中的Next和Previous匹配项。FindNext
的代码是
try
{
if (start_search_point < log_textbox.Text.Length && start_search_point != -1)
{
log_textbox.SelectionBackColor = highlight_all_color;
log_textbox.Find(search_keyword, start_search_point, RichTextBoxFinds.WholeWord);
log_textbox.SelectionBackColor = Color.Honeydew;
if (start_search_point + search_keyword.Length < log_textbox.Text.Length)
start_search_point = log_textbox.Text.IndexOf(search_keyword, start_search_point + search_keyword.Length);
else
start_search_point = 0;
}
else
{
start_search_point = 0;
}
}
catch (Exception ex)
{
MDIParent.thisMdiObj.txtLog.Invoke(new Action(() => MDIParent.thisMdiObj.txtLog.AppendText(DateTime.Now.ToString() + " : " + ex.Message + "=>" + ex.StackTrace.ToString() + Environment.NewLine)));
}
有人能帮我处理FindPrevious
部分吗?我不明白这其中的逻辑。
1条答案
按热度按时间knsnq2tg1#
如何创建MatchCollection并使用它?
然后使用currentIndex从集合中获取元素-
示例:x1c 0d1x