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

quinta-feira, 18 de outubro de 2012

IE9: Modo compatibilidade



Uma das premissas a ser levada em consideração na criação e manutenção de aplicações web a compatibilidade. Com os constantes avanços nas linguagens de desenvolvimento web (HTML5, XHTML, CSS3, entre outros), algumas funcionalidades e efeitos visuais tendem a funcionar em determinado navegador e não funcionar em outros.
No dia a dia, costumo testar minhas aplicações no navegador Internet Explorer 9 e o mesmo possui um ícone próximo à barra de endereços para exibição em modo de compatibilidade.

Porém na manutenção de uma aplicação web em que determinado recurso não funciona corretamente no IE9, ficar clicando neste ícone toda vez que for testar aplicação é na menor das hipóteses uma perda de tempo. Nestes casos, há como deixar o modo de compatibilidade ativo sempre que o navegador abrir. Para isto, basta abrir o IE, clicar em Configuração do Modo de Exibição de Compatibilidade. Lá você tem a opção de definir o endereço a ser acessado neste modo ou definir que todos os sites sejam acessados desta maneira.