0

我想要一个richTextBox加载后的特定内容标记彩色(某些单词的“背景”发生变化)。当我单击一个按钮时,例如要标记的单词 car。现在我发现我必须为我的目的重建这段代码。

public bool DoSearch(RichTextBox richTextBox, string searchText, bool searchNext)
       {
            TextRange searchRange;

            // Get the range to search
            if (searchNext)
                searchRange = new TextRange(richTextBox.Selection.Start.GetPositionAtOffset(1),
                                            richTextBox.Document.ContentEnd);
            else
                searchRange = new TextRange(richTextBox.Document.ContentStart, 
                                            richTextBox.Document.ContentEnd);

            // Do the search
            TextRange foundRange = FindTextInRange(searchRange, searchText);
            if (foundRange == null)
                return false;

            // Select the found range
            richTextBox.Selection.Select(foundRange.Start, foundRange.End);
            return true;
        }

        public TextRange FindTextInRange(TextRange searchRange, string searchText)
        {
            // Search the text with IndexOf
            int offset = searchRange.Text.IndexOf(searchText);
            if (offset < 0)
                return null;  // Not found

            // Try to select the text as a contiguous range
            for (TextPointer start = searchRange.Start.GetPositionAtOffset(offset); 
                             start != searchRange.End; 
                             start = start.GetPositionAtOffset(1))
            {
                TextRange result = new TextRange(start, start.GetPositionAtOffset(searchText.Length));
                if (result.Text == searchText)
                    return result;

            }
            return null;
        }

有人能帮我吗?

4

1 回答 1

1

请尝试此链接,其中包含一个功能 HighlightPhrase,它可以更改富文本框中特定单词的颜色。遵循此功能尝试调查如何更改背景。

如何使用 C# 更改富文本框中特定单词的颜色

于 2013-02-12T10:49:29.317 回答