Question

Je souhaite doubler la mémoire tampon d'un contrôle personnalisé contenant des boutons. J'ai essayé différentes manières de mettre en double tampon le contrôle; SetStyle, BufferedGraphicsContext et dessin vers un bitmap. Tout cela fonctionne bien pour le dessin personnalisé du contrôle, mais aucun ne gère l'attribution du bouton à un tampon arrière. Comment y parvenir?

Était-ce utile?

La solution

Techniquement, vous ne pouvez pas, et vous ne devriez vraiment pas en avoir besoin si ce sont des boutons .NET WinForms standard.

Les boutons eux-mêmes contrôlent cela via la propriété protégée DoubleBuffered. Le seul moyen d'y accéder serait de dériver une nouvelle classe de S.W.F.Button et d'implémenter du code pour activer la propriété DoubleBuffered sur des instances de cette classe (je le ferais probablement 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 uniquement issus de WinAPI; ils ne sont pas GDI +. En conséquence, vous ne devriez pas avoir besoin de mettre en double tampon leur dessin. Cela dit, je ne connais pas votre scénario d'utilisation et les symptômes de votre application. Je peux donc me tromper. :)

Vous pouvez envisager de consulter le livre Formulaires et contrôles personnalisés Windows Pro .NET 2.0 en C # . Tout cela a été résumé à partir des informations contenues dans ce livre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top