Parpadeos, flickers

01/08/2008 - 09:55 por Alhambra Eidos Kiquenet | Informe spam
Hola a todos,



Tenemos una aplicación windows forms con diferentes controles que usamos,
cada control puede contener varios elementos como textboxes, custom labels,
user controls, y algún treeviews.. etc.

Estamos intentando eliminar los flickers (parpadeos) cuando se cargan los
diferentes controles o cuando se cambia a una vista diferente, pero sin
suerte, y hemos intentado varios métodos como:
- this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
- this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
- SuspendItemsLayout();
- ResumeItemsLayout();

Usando el código anterior en cada control o en el main form no conseguimos
nada, estamos desesperados para intentar corregir este problema. Hay alguna
manera de resolverlo ??

FYI: Tenemos Visual Studio 2005 Team Suite SP2/ .NET 2.0

Windows XP Professional SP2 on 3.20 GHz multithreaded CPU and 1GB RAM.

Gracias de antemano.
http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Preguntas similare

Leer las respuestas

#1 RFOG
01/08/2008 - 11:22 | Informe spam
Con Windows Forms, si has activado el doble buffer y evitar el pintado del
fondo como parece que has hecho, no se puede hacer más. Lo que podrías es
hacerlo en todos los controles (incluso en aquellos en los que
oficialmente no se puede. Mira esto:
http://geeks.ms/blogs/rfog/archive/...panel.aspx).

Todo viene porque es el propio código escrito en C# el que construye los
controles de forma bastante chapucera (Para ver creación rápida de fichas
barrocas, el C++ Builder o el Delphi), y encima el SuspendLayout y
asociadas parece que fuera de InitializeComponents no funcionan muy bien.

Salvo que alguien tenga alguna idea diferente, eso es lo que hay. :-(

On Fri, 01 Aug 2008 09:55:01 +0200, Alhambra Eidos Kiquenet
wrote:

Hola a todos,



Tenemos una aplicación windows forms con diferentes controles que usamos,
cada control puede contener varios elementos como textboxes, custom
labels,
user controls, y algún treeviews.. etc.

Estamos intentando eliminar los flickers (parpadeos) cuando se cargan los
diferentes controles o cuando se cambia a una vista diferente, pero sin
suerte, y hemos intentado varios métodos como:
- this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
- this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
- SuspendItemsLayout();
- ResumeItemsLayout();

Usando el código anterior en cada control o en el main form no
conseguimos
nada, estamos desesperados para intentar corregir este problema. Hay
alguna
manera de resolverlo ??

FYI: Tenemos Visual Studio 2005 Team Suite SP2/ .NET 2.0

Windows XP Professional SP2 on 3.20 GHz multithreaded CPU and 1GB RAM.

Gracias de antemano.





Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Multitarea: Destrozar muchas cosas al mismo tiempo.
Respuesta Responder a este mensaje
#2 rivasbrothers
09/07/2013 - 11:15 | Informe spam
Alhambra Eidos Kiquenet escribió el 01/08/2008 09:55 :
Hola a todos,



Tenemos una aplicación windows forms con diferentes controles que
usamos,
cada control puede contener varios elementos como textboxes, custom labels,
user controls, y algún treeviews.. etc.

Estamos intentando eliminar los flickers (parpadeos) cuando se cargan los
diferentes controles o cuando se cambia a una vista diferente, pero sin
suerte, y hemos intentado varios métodos como:
- this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
- this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
- SuspendItemsLayout();
- ResumeItemsLayout();

Usando el código anterior en cada control o en el main form no
conseguimos
nada, estamos desesperados para intentar corregir este problema. Hay alguna
manera de resolverlo ??

FYI: Tenemos Visual Studio 2005 Team Suite SP2/ .NET 2.0

Windows XP Professional SP2 on 3.20 GHz multithreaded CPU and 1GB RAM.

Gracias de antemano.
http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft


Coloca el siguiente codigo:

protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; //WS_EX_COMPOSITED
return cp;
}
}
es muy eficaz pero puede suprimir controles con efecto slide que por cierto son muy pocos en las aplicaciones C#, debes colocarlos en la clase del form, es decir despues de :

public partial class Form1 : Form
{

//**Colocalo aqui!!

}


SALUDOS DESDE EL SALVADOR!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida