2010-08-10 7 views
3

Je vide et ajoute plusieurs LinkLabel à FlowLayoutPanel, toutes les deux secondes. Cela fonctionne bien, mais le scintillement est assez perceptible. Y a-t-il un moyen de le réduire? J'ai essayé de mettre en forme Form.Buffering, cela n'a pas aidé.Réduire le scintillement de .NET FlowLayoutPanel

+1

Pourquoi êtes-vous les ajouter/les supprimer? La définition de la visibilité ne serait-elle pas suffisante? Il semble que vous n'utilisez pas le bon contrôle pour le travail. – leppie

+0

J'ai essayé de régler la propriété visible, ça scintille aussi – Thunder

Répondre

5

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

+0

Pas idéal mais si vous voulez que quelque chose soit fait correctement, faites-le vous-même. –

+0

@MattSkeldon quelle serait votre solution idéale? – Smith

+0

Ma solution idéale serait que le contrôle standard fonctionne sans avoir besoin de créer un contrôle hérité qui rend totalement le contrôle standard inutile, car une fois que vous avez fait cela, il n'y a aucun avantage pour le contrôle standard. Idéal et réaliste sont des concepts totalement différents cependant. –

1

Essayez d'appeler SuspendLayout() pour le panneau avant d'ajouter des contrôles, puis appelez ResumeLayout() sur le Panel. Vous pouvez perdre un peu de scintillement.

+0

Ça marche pour moi! –

Questions connexes