Réduire Flicker de .NET FlowLayoutPanel
-
27-09-2019 - |
Question
Je suis compensation et ajout de plusieurs LinkLabel à ce FlowLayoutPanel, toutes les deux secondes. Il fonctionne très bien, mais le scintillement est tout à fait perceptible. Est-il possible de le réduire? J'ai essayé de mettre Form.DoubleBuffering, il n'a pas aidé.
La solution
Géré par la création d'un contrôle personnalisé dérivé de FlowLayoutPanel et en définissant ses styles comme indiqué ci-dessous:
Classe publique CustomFlowLayoutPanel Hérite FlowLayoutPanel
Public Sub New() MyBase.New() SetStyle(ControlStyles.UserPaint, True) SetStyle(ControlStyles.AllPaintingInWmPaint, True) SetStyle(ControlStyles.DoubleBuffer, True) End Sub
End Class
Autres conseils
Essayez d'appeler SuspendLayout () pour le panneau avant d'ajouter des commandes, pour ensuite appeler ResumeLayout () sur le panneau. Vous risquez de perdre tremblotant un peu.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow