突出显示richtextbox中包含字母的所有单词

时间:2014-04-28 16:44:56

标签: c# winforms richtextbox

如何突出显示richtextbox中包含字母的所有单词。如果我想突出显示包含字母" a" ,就像帽子或蜡烛一样,然后突出显示两个单词。 我使用winform使用c#。

 private void button208_Click(object sender, EventArgs e)
{
   HighlightPhrase(richTextBox1, "a", Color.Yellow);  
}

这会突出显示所有带字母的单词" a"但我不确定如何长到空格然后突出显示。 感谢。

1 个答案:

答案 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);