如何突出显示richtextbox中包含字母的所有单词。如果我想突出显示包含字母" a" ,就像帽子或蜡烛一样,然后突出显示两个单词。 我使用winform使用c#。
private void button208_Click(object sender, EventArgs e)
{
HighlightPhrase(richTextBox1, "a", Color.Yellow);
}
这会突出显示所有带字母的单词" a"但我不确定如何长到空格然后突出显示。 感谢。
答案 0 :(得分:0)
您可以使用Find方法查找您要查找的子字符串的出现次数。然后,使用SelectionBackColor属性将背景颜色更改为每次出现的高亮颜色。
int len = richTextBox.TextLength;
int index = 0;
string textToFind = "a";
// this will highlight the text you're looking for
while ( index < len )
{
richTextBox.Find(textToFind, index, len, RichTextBoxFinds.None);
richTextBox.SelectionBackColor = Color.Yellow;
index = richTextBox.Text.IndexOf(textToFind, index) + textToFind.Length;
}
如果要突出显示包含某个字母的整个单词,那么每当您发现该字母的出现时,您都需要搜索字边界(字母索引的左侧和右侧)和一旦您确定了它们,就可以使用RichTextBox控件的Select方法选择整个单词。
richTextBox.Select(wordBoundaryStart, wordBoundaryEnd - wordBoundaryStart);