So vermeiden Sie das Flackern in TableLayoutPanel in c # .net

8

Ich benutze ein TableLayoutPanel für die Anwesenheitsmarkierung. Ich habe in diesem TableLayoutPanel Steuerelemente (ein Panel und ein Label) hinzugefügt und Ereignisse für sie erstellt. In einigen Bedingungen habe ich alle Steuerelemente gelöscht und die gleichen Steuerelemente an anderer Position von TableLayoutPanel gebunden. Beim erneuten Binden der Steuerelemente flackert das TableLayoutPanel und ist viel zu langsam beim Initialisieren.

    
Vyas Dev 13.07.2011, 10:32
quelle

5 Antworten

13

Halten Sie das Layout an, bis Sie alle Ihre Steuerelemente hinzugefügt haben.

%Vor%

Sehen Sie sich auch Double Buffering an. Sie müssen eine Unterklasse des TableLayoutPanel erstellen. Sehen Sie ein Beispiel hier .

    
Ian 13.07.2011, 10:40
quelle
3

Das hat gut für mich funktioniert Entfernen von Flimmern aufgrund von TableLayoutPanel & amp; Panel in Windows-Form

Hier ist was in diesem Link (wörtlich kopiert)

  

Vollständig Entfernen von Flimmern aufgrund von TableLayoutPanel & amp; Panel in   Windows-Formular gehen wie folgt: = -   1. Legen Sie die doppelt gepufferte Eigenschaft von Form = True fest.   2. Fügen Sie 2 Funktionen in form.cs

hinzu %Vor%      
  1. Rufen Sie SetDoubleBuffered(“TableLaoutPannel_controlName”) für jedes TableLayoutPannel , Pannel , Splitcontainer , Datagridview & amp; alle Behälter   Kontrollen.
  2.   

Danke an RhishikeshLathe Gepostet am 16.22.14 20:11

    
F0r3v3r-A-N00b 11.11.2016 07:42
quelle
1

Verwenden Sie diesen Bereich, um die Eigenschaft dBuffer true

festzulegen %Vor%     
uzoom 23.10.2014 07:57
quelle
0

Dieser Code wurde bei einer anderen Frage eingereicht und hat einen API-Aufruf verwendet, um das TableLayoutPanel-Redraw zu setzen.

Ссылка

    
AussieALF 09.07.2016 09:33
quelle
-1

Als eine Verbesserung des oben genannten hatte ich bessere Ergebnisse mit:

%Vor%     
Garrett 18.10.2013 13:11
quelle

Tags und Links