2008-10-05 8 views
5

Je souhaite doubler un contrôle personnalisé contenant des boutons. J'ai essayé plusieurs façons de doubler le contrôle du tampon; SetStyle, BufferedGraphicsContext et dessin à un bitmap. Tout cela fonctionne très bien pour le dessin personnalisé du contrôle, mais aucun d'entre eux ne gère le dessin du bouton sur un tampon arrière. Comment puis-je y parvenir?Contrôles enfants à double tampon dans un contrôle personnalisé (C#)

+0

Voir aussi: http://stackoverflow.com/questions/76993/how-to-double-buffer-net-controls-on-a-form. – ESRogs

Répondre

2

Techniquement vous ne pouvez pas, et vous ne devriez pas vraiment besoin si elles sont des boutons standards .NET WinForms.

Les boutons eux-mêmes contrôlent la propriété DoubleBuffered protégée. La seule façon d'y accéder serait de dériver une nouvelle classe à partir de S.W.F.Button et d'implémenter du code pour activer la propriété DoubleBuffered sur les instances de cette classe (je ferais probablement cela dans le constructeur). Enfin, utilisez les objets de cette nouvelle classe sur votre formulaire au lieu de S.W.F.Buttons. Cependant, si je me souviens bien, les boutons sont purement dessinés à partir de WinAPI; ils ne sont pas GDI +. Par conséquent, vous ne devez pas besoin de pour double-tampon leur dessin. Cela dit, je ne connais pas votre scénario d'utilisation et je ne connais pas les symptômes que votre application affiche, donc je peux me tromper. :)

Vous pouvez consulter le livre Pro .NET 2.0 Windows Forms and Custom Controls in C#. Tout cela a été résumé à partir des informations contenues dans ce livre.

Questions connexes