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

富文本框C#Winforms-如果包含在另一个文本框中,则不要突出显示word,c#,winforms,find,C#,Winforms,Find,我正在使用带有富文本框的C#Winforms。我使用find方法突出显示文本中的一个单词,基本上用于拼写检查。我遇到的问题是,如果一个单词包含在另一个单词中,我不希望突出显示它。以下是一个例子: Text=这是一个错误。这是第二个错误。 正在搜索字符串中的“erro”。第一个错误被更正为“错误” Text=这是一个错误。这是第二个错误 现在,当我搜索“erro”时,它会像这样突出显示: 这是一个错误。这是第二个错误 只有当单词不包含在另一个单词中时,才有可能突出显示该单词吗?或者换句话说,是否可

我正在使用带有富文本框的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

谢谢。

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

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

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

你首先要对“单词”下一个明确的定义。看一看比赛左边和右边的角色。任意地,如果char.isleter()为这些字符返回true,则跳过它。您是指VS编辑器的“查找”对话框中的“匹配整个单词”功能吗?这真的很奇怪。我之前确实试过用这个,但没用。哦,现在是了,谢谢。