Witam mam takie pewne pytanko, albowiem chciałem zrobić sobie edytor tekstowy, który by mi pomagał tworzyć różne mody do gier i pomyślałem sobie, że bardzo mógłby mi pomoc w wielu zadaniach Syntax Highlight. Postanowiłem znaleźć jakiś prosty skrypt w internecie i znalazłem (poniżej wklejam kod), ale mam pewien problem, ponieważ oczywiście słowo, które wpisze w richtextboxe koloruje sie, na który kolor chce, ale jak plik ma np. 100 linijek to te słowa na początku zaczynają migać według mnie strasznie burzy to taka estetykę i wrażenia z pisania. I tutaj mam takie pytanko czy jest jakiś sposób, aby wyeliminować to "miganie"?

private void Rtb_TextChanged(object sender, EventArgs e)
{
            settings = File.ReadAllLines(app_path + "/settings.txt");

            Color originalColor;

            MatchCollection keywordMath = Regex.Matches(mainText.Text, syntaxWords[0]);

            MatchCollection greenStyle = Regex.Matches(mainText.Text, syntaxWords[1]);

            MatchCollection yelloStyle = Regex.Matches(mainText.Text, syntaxWords[2]);

            MatchCollection grayStyle = Regex.Matches(mainText.Text, syntaxWords[3]);

            int originalIndex = mainText.SelectionStart;
            int originalLength = mainText.SelectionLength;
            if (settings[1].Contains("white"))
            {
                originalColor = Color.Black;
            }
            else {
                originalColor = Color.White;
            }
                

            mainText.SelectionStart = 0;
            mainText.SelectionLength = mainText.Text.Length;
            mainText.SelectionColor = originalColor;

            foreach (Match m in keywordMath)
            {
                mainText.SelectionStart = m.Index;
                mainText.SelectionLength = m.Length;
                mainText.SelectionColor = Color.Blue;
            }

            foreach (Match m in greenStyle)
            {
                mainText.SelectionStart = m.Index;
                mainText.SelectionLength = m.Length;
                mainText.SelectionColor = Color.Green;
            }

            foreach (Match m in yelloStyle)
            {
                mainText.SelectionStart = m.Index;
                mainText.SelectionLength = m.Length;
                mainText.SelectionColor = Color.Yellow;
            }

            foreach (Match m in grayStyle)
            {
                mainText.SelectionStart = m.Index;
                mainText.SelectionLength = m.Length;
                mainText.SelectionColor = Color.Gray;
            }

            mainText.SelectionStart = originalIndex;
            mainText.SelectionLength = originalLength;
            mainText.SelectionColor = originalColor;

            mainText.Focus();
}