Maison >développement back-end >C++ >Comment puis-je éliminer le scintillement de mes contrôles .NET ?
Contrôle .NET à double tampon : résolution des problèmes de scintillement
Les contrôles scintillants sur le formulaire sont très ennuyeux. Heureusement, .NET fournit un moyen de résoudre ce problème en utilisant la double mise en mémoire tampon. La double mise en mémoire tampon améliore les performances de mise à jour répétée des contrôles en pré-rendu les modifications hors écran, puis en mettant à jour le contrôle une fois. En fin de compte, cela a éliminé le scintillement.
Pour activer la double mise en mémoire tampon, nous ne pouvons pas accéder directement à la propriété DoubleBuffered car elle est marquée comme protégée. Au lieu de cela, nous utiliserons la réflexion pour appeler dynamiquement cette propriété.
Ce qui suit est une version optimisée de la solution :
<code class="language-c#">public static void SetDoubleBuffered(System.Windows.Forms.Control c) { // 检查用户是否在终端服务会话(例如,远程桌面)中工作 if (System.Windows.Forms.SystemInformation.TerminalServerSession) return; // 使用反射获取受保护的“DoubleBuffered”属性 var aProp = typeof(System.Windows.Forms.Control).GetProperty( "DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); // 将“DoubleBuffered”属性设置为 true aProp.SetValue(c, true, null); }</code>
Vous pouvez éliminer le scintillement et améliorer l'expérience utilisateur de votre formulaire en appelant la méthode SetDoubleBuffered() sur les contrôles souhaités.
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!