富文本框C#Winforms-如果包含在另一个文本框中,请不要突出显示该单词

本文关键字:文本 单词 显示 如果 C#Winforms- 包含 另一个 | 更新日期: 2023-09-27 18:25:51

我使用的是带有富文本框的C#Winforms。我使用find方法来突出显示文本中的一个单词,基本上是为了拼写检查器。我遇到的问题是,如果一个单词包含在另一个单词中,我不想突出显示它。这里有一个例子:

Text=这是一个错误。这是第二个错误。正在字符串中搜索"erro"。第一个错误被更正为"错误"Text=这是一个错误。这是第二个错误。

现在,当我搜索"erro"时,它会突出显示为:

这是一个错误。这是第二个错误。

只有当单词不包含在另一个单词中时,才有可能真正突出显示该单词吗?或者换句话说,是否可以检查它是否包含在另一个文件中,以便跳过它?

// Find the word.
ocrText.Find(this.ocrWords[wordToFindIndex], index, ocrText.TextLength, RichTextBoxFinds.None);
//TODO: Check to see if the found word is not contained inside another word

谢谢。

富文本框C#Winforms-如果包含在另一个文本框中,请不要突出显示该单词

您应该使用带有RichTextBoxFinds枚举的重载RichTextBox.Find方法特别是RichTextBoxFinds.WholeWord.

ocrText.Find(this.ocrWords[wordToFindIndex], index, ocrText.TextLength, RichTextBoxFinds.WholeWord ); 

一个快速的解决方案是测试单词前后的字符。例如,您可以测试下一个/上一个字符是空白还是行首/行尾。