InicioInfoGran truco para aumentar la velocidad gráfica en .NET

Gran truco para aumentar la velocidad gráfica en .NET

Info4/28/2009
Les dejo un truco para aumentar la velocidad de los gráficos en .NET. Habrán notado que el motor gráfico de .NET en general es bastante lento, y si un formulario tiene muchos controles, cada vez que se hace algo, como ser, algo que pasa por arriba, se redibujan los controles y se notan efectos de parpadeo, etc. Pero la verdad es que el motor es bastante rápido, solo que hay que "tunearlo".

Lo único que tienen que hacer es agregar la siguiente línea en el constructor del control.

En C#:
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);

En VB.NET:
Me.SetStyle(ControlStyles.DoubleBuffer Or ControlStyles.AllPaintingInWmPaint, True)

Lo que estamos haciendo es que el motor dibuje en un buffer y recién cuando esté terminado lo mande a pantalla, y en segundo lugar estamos indicando que se ignore el mensaje WM_ERASEBKGND para hacer el OnPaint, lo que reduce aún más el parpadeo.

De ser necesario deben agregar también:

En C#:
this.SetStyle(ControlStyles.UserPaint, true);

En VB.NET:
Me.SetStyle(ControlStyles.UserPaint, True)

Hay muchas más opciones. Pruébenlo en sus controles. Es enorme el aumento de velocidad.

Más información en el sitio MSDN:
http://msdn.microsoft.com/en-us/library/system.windows.forms.controlstyles.aspx

Espero les sirva tanto como a mi.

Hasta pronto.

Joshua03
Datos archivados del Taringa! original
19puntos
3,461visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

J
Joshua03🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.