2012-02-27 19 views
0

我正在使用帶有豐富文本框的C#Winforms。我使用find方法突出顯示文本中的單詞,基本上用於拼寫檢查器。我遇到的問題是,如果它包含在另一個單詞中,我不希望突出顯示一個單詞。這裏是一個例子:富文本框C#Winforms - 如果包含在另一個內容中,請不要突出顯示單詞

Text =這是一個錯誤。這是第二個錯誤。 在字符串中搜索「erro」。第一個錯誤更正爲「錯誤」 Text =這是一個錯誤。這是第二個錯誤。

現在,當我搜索 「埃羅」 它突出了它喜歡:

這是一個* 埃羅 * R。這是第二個錯誤。

只有當它不包含在另一個單詞中時,纔可能實際上只突出顯示該單詞嗎?換句話說,是否可以檢查它是否包含在另一個內部,以便可以跳過?

// 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 

謝謝。

+0

您首先必須對「單詞」做一個明確的定義。看看比賽左側和右側的角色。任意地,如果char.IsLetter()對這些字符返回true,則跳過它。 – 2012-02-27 13:35:07

+0

你的意思是*匹配整個單詞*功能在VS編輯器的*查找*對話框中? – brgerner 2012-02-27 13:39:11

回答

1

您應該使用RichTextBoxFinds枚舉 特別RichTextBoxFinds.WholeWord重載RichTextBox.Find方法。

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

這真的很奇怪。我確實嘗試過使用它,但沒有奏效。哦,現在好了,謝謝。 – Jpin 2012-02-27 13:45:29

0

一個簡單的解決方案是測試字詞背後和前面的字符。 例如,您可以測試下一個/上一個字符是否爲空白或行的開始/結束。

相關問題