Question :
Actualisez DataGridView en temps réel, en particulier lorsque le taux de mise à jour est élevé et que le nombre de cellules est important, des défauts visuels tels que le scintillement et le gel sont susceptibles de se produire.
Analyse :
La technologie de double tampon résout ces problèmes en utilisant un tampon hors écran.
Solution :
Activez la fonction de double mise en mémoire tampon de DataGridView via la réflexion ou le sous-classement.
Créez une sous-classe de DataGridView et exposez la propriété DoubleBuffered :
<code class="language-csharp">public class DBDataGridView : DataGridView { public new bool DoubleBuffered { get { return base.DoubleBuffered; } set { base.DoubleBuffered = value; } } public DBDataGridView() { DoubleBuffered = true; } }</code>
Ajoutez cette classe à votre projet et définissez DoubleBuffering sur true.
Configurez DoubleBuffering par programmation à l'aide de la réflexion :
<code class="language-csharp">using System.Reflection; static void SetDoubleBuffer(Control ctl, bool DoubleBuffered) { typeof(Control).InvokeMember("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, ctl, new object[] { DoubleBuffered }); }</code>
Appelez SetDoubleBuffer pour changer le DoubleBuffering de DataGridView.
En activant DoubleBuffering, DataGridView utilisera un tampon hors écran pour dessiner les mises à jour, réduisant ainsi le scintillement et le bégaiement lors des mises à jour fréquentes.
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!