Подсветка синтаксиса в RichTextBox
Насколько я знаю, это возможно сделать только при помощи свойства SelectionColor. Т.е. сперва нужно установить Selection на нужный участок текста, а затем задать цвет. Примерно так:private void richTextBox1_TextChanged(object sender, EventArgs e)
{
    var currentSelStart = richTextBox1.SelectionStart;
    var currentSelLength = richTextBox1.SelectionLength;

    richTextBox1.SelectAll();
    richTextBox1.SelectionColor = SystemColors.WindowText;

    var matches = Regex.Matches(richTextBox1.Text, @"\bclass\b");
    foreach (var match in matches.Cast<Match>())
    {
        richTextBox1.Select(match.Index, match.Length);
        richTextBox1.SelectionColor = Color.Blue;
    }

    richTextBox1.Select(currentSelStart, currentSelLength);
    richTextBox1.SelectionColor = SystemColors.WindowText;
}
Разумеется, заново раскрашивать весь текст при каждом изменении неправильно. Это нужно делать более оптимальным образом. Кроме того, желательно отключить перерисовку на время раскрашивания, иначе возможны нежелательные моргания при большом размере текста. В примере этого нет, но тут вроде есть решение.
Спасибо вам огромное. Но если раскрашивать весь текст при каждом изменении неправильно, то как тогда действовать? К примеру как реализовано это в notepad++?