Pesquisar este blog

domingo, 21 de outubro de 2012

C# Windows Form Anti Flickadas


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);
}

Nenhum comentário:

Postar um comentário