
O componente RichTextBox é um componente muito útil para entrada de texto passíveis de formatação. Com este componente, podemos criar analisadores gramaticais, editores de texto, entre outras finalidades. Através do método Select(), podemos selecionar o texto a ser formatado e aplicar uma diferenciação de fonte, cor e estilo. Porém em textos maiores, o ato de ficar sempre controlando o texto com o uso do método Select a cada entrada no controle, faz com que o mesmo dê algumas flickadas, comportando de maneira estranha a esperada.
Garimpando na internet, constatei em fórums, se tratar de uma funcionalidade não implementada no controle para controle do redesenho, o que faz com que ele haja desta maneira. Para contornar, encontrei mil e uma maneiras, porém a que me foi mais eficiente, foi a seguinte:
Importar a seguinte dll no código:
[DllImport("user32.dll")]
public static extern bool LockWindowUpdate(IntPtr hWndLock);
try
{
LockWindowUpdate(richTextBox1.Handle);
//As alterações desejadas vem aqui
}
finally
{
LockWindowUpdate(IntPtr.Zero);
}

