gpt4 book ai didi

c# - 搜索 RichTextBox 并突出显示该特定单词的所有实例的方法

转载 作者:行者123 更新时间:2023-12-04 06:02:28 26 4
gpt4 key购买 nike

我真的不知道应该从哪里开始。

我有一个 WPF 应用程序,它有一个 RichTextBox , 在这里面有大量使用 FlowDocument 的文本这取决于用户的选择。

我需要一种方法,用户可以从中输入一个词到 TextBox如果找到该单词的每个实例,则将在相邻的 RichTextBox 中突出显示。 . http://kentb.blogspot.com/2009/06/search-and-highlight-text-in-arbitrary.html这个想法将是完美的,但我不知道如何使用 RichTextBox 将它应用到我的应用程序中。 .

先感谢您!

最佳答案

您是否尝试过使用正则表达式?

就像是:

private void searchButton_Click(object sender, EventArgs e)
{
//Select all text and bring it back to default color values so you
//can make a new search selection

richTextBox1.SelectAll();
richTextBox1.SelectionColor = System.Drawing.Colors.Black;

//Deselect all text to ready selections

richTextBox1.DeselectAll();

//Create a MatchList variable and initialize it to all matches
//within the RichTextBox. Add a using statement of
//System.Text.RegularExpressions

Color evenColor = Color.Red;
Color oddColor = Color.Blue;

MatchCollection matches = Regex.Matches(richTextBox1.Text, searchTextBox.Text);

//Apply color to all matching text
int matchCount = 0;
foreach (Match match in matches)
{
richTextBox1.Select(match.Index, match.Length);
//richTextBox1.SelectionColor = System.Drawing.Color.Red;
richTextBox1.SelectionColor =
matchCount++ % 2 == 0 ? evenColor : oddColor;
}
}

只要您的盒子中不需要多种颜色,此方法就有效。通过一些额外的逻辑,您也可以将其合并,我敢肯定。

编辑:在 WPF 中不起作用。持续关注 WinForms。

关于c# - 搜索 RichTextBox 并突出显示该特定单词的所有实例的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com