Saltar al contenido

Cómo evitar el parpadeo en TableLayoutPanel en c#.net

Esta es la contestación más correcta que encomtrarás dar, pero estúdiala pausadamente y analiza si se puede adaptar a tu proyecto.

Solución:

Suspenda el diseño hasta que haya agregado todos sus controles.

TableLayoutPanel panel = new TabelLayoutPanel();
panel.SuspendLayout();

// add controls

panel.ResumeLayout();

También mire el uso de Double Buffering. Tendrá que crear una subclase de TableLayoutPanel. Vea un ejemplo aquí.

Esto funcionó muy bien para mí Eliminar el parpadeo debido a TableLayoutPanel & Panel en forma de Windows

Aquí lo que hay en ese enlace (copiado textualmente)

Elimine completamente el parpadeo debido a TableLayoutPanel & Panel en el formulario de Windows de la siguiente manera: = – 1. Establezca la propiedad de doble búfer de Form =true. 2. Pegue las siguientes 2 funciones en form.cs

#region .. Double Buffered function ..
   public static void SetDoubleBuffered(System.Windows.Forms.Control c)
    
        if (System.Windows.Forms.SystemInformation.TerminalServerSession)
            return;
        System.Reflection.PropertyInfo aProp = typeof(System.Windows.Forms.Control).GetProperty("DoubleBuffered",
        System.Reflection.BindingFlags.NonPublic 

   #endregion


   #region .. code for Flucuring ..

   protected override CreateParams CreateParams
    
        get
        = 0x02000000;
            return cp;
        
    

    #endregion
  1. Llamar SetDoubleBuffered(“TableLaoutPannel_controlName”) para cada TableLayoutPannel,Pannel, Splitcontainer, Datagridview y todos los controles de contenedores.

Gracias a RhishikeshLathe Publicado el 16 de febrero de 14 a las 20:11 p. m.

VB.net:

   Protected Overrides ReadOnly Property CreateParams() As CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H2000000
            Return cp
        End Get
    End Property

C#:

    protected override CreateParams CreateParams
    
     get
      0x2000000;
      return cp;
     
    

En VB, agréguelo al final de la clase afectada y le aseguro que funcionará.

En C#, agregue la propiedad a la parte superior de la clase junto con sus otras propiedades.

Básicamente, espera la representación completa de Winform y elimina el parpadeo del formulario que se está pintando en la pantalla. Si no lo has probado, no lo ignores. Tuve un gran problema con la latencia de Winform y esto lo solucionó.

Si tienes alguna desconfianza y disposición de ascender nuestro post puedes realizar un exégesis y con gusto lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *