Résolution des artefacts scintillants dans la double mémoire tampon WinForms
Les applications WinForms utilisant la double mise en mémoire tampon peuvent parfois présenter des artefacts visuels persistants lors du chargement ou des mises à jour des contrôles. En effet, la double mise en mémoire tampon standard n'affecte que le formulaire principal, pas ses contrôles enfants.
La solution nécessite la mise en œuvre d'une double mise en mémoire tampon au niveau du formulaire et du contrôle enfant. L'indicateur de style WS_EX_COMPOSITED
(introduit avec Windows XP) permet une double mise en mémoire tampon pour l'ensemble du formulaire. Voici comment l'activer :
<code class="language-csharp">protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // Enable WS_EX_COMPOSITED return cp; } }</code>
Bien que cela n'accélère pas la peinture, cela évite les artefacts de peinture visibles en garantissant que le formulaire s'affiche correctement après un court délai.
Pour éliminer complètement le délai, envisagez une approche différente : évitez d'utiliser des contrôles standard et dessinez plutôt des contrôles personnalisés directement dans la méthode OnPaint
. Gérez l'interaction des utilisateurs via l'événement OnMouseClick
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!