Highlight all searched words

Khilen Maniyar picture Khilen Maniyar · Aug 7, 2012 · Viewed 37.8k times · Source

In my RichtextBox, if I have written as below.

This is my pen,
his pen is beautiful.

Now I search word "is" then output would be as below.

All "is" should be highlighted.

Answer

Omar picture Omar · Aug 7, 2012

What about:

static class Utility {
    public static void HighlightText(this RichTextBox myRtb, string word, Color color) {  

       if (word == string.Empty)
            return;

       int s_start = myRtb.SelectionStart, startIndex = 0, index;

       while((index = myRtb.Text.IndexOf(word, startIndex)) != -1) {
           myRtb.Select(index, word.Length);
           myRtb.SelectionColor = color;

           startIndex = index + word.Length;
       }

       myRtb.SelectionStart = s_start;
       myRtb.SelectionLength = 0;
       myRtb.SelectionColor = Color.Black;
    }
}