Translate

Samstag, 28. November 2015

C# Jedes Auftreten eines Textes in einer Richtextox farbig markieren


private void ColorAllAppearencesInRichtextBox(RichTextBox richTextBox, string appearence, Color color)
        {
            int start = 0, current = 0;
            RichTextBoxFinds options = RichTextBoxFinds.MatchCase;
            action = () => start = richTextBox.Find(appearence, start, options);
            richTextBox.Invoke(action);
            while (start >= 0)
            {
                action = () => richTextBox.SelectionStart = start;
                richTextBox.Invoke(action);
                action = () => richTextBox.SelectionLength = appearence.Length;
                richTextBox.Invoke(action);
                action = () => richTextBox.SelectionColor = color;
                richTextBox.Invoke(action);

                current = start + appearence.Length;

                int tempRichTextBoxTextLength = 0;
                action = () => tempRichTextBoxTextLength = richTextBox.TextLength;
                richTextBox.Invoke(action);

                if (current < tempRichTextBoxTextLength)
                {
                    action = () => start = richTextBox.Find(appearence, current, options);
                    richTextBox.Invoke(action);
                }
                else
                {
                    break;
                }
            }
        }

Keine Kommentare:

Kommentar veröffentlichen