Frage:
DataGridView in Echtzeit aktualisieren, insbesondere wenn die Aktualisierungsrate hoch ist und die Anzahl der Zellen groß ist, visuelle Defekte wie Flackern und Verzögerungen sind anfällig für eintreten.
analysieren:
Die Doppelpuffertechnologie löst diese Probleme durch die Verwendung von Off-Screen-Puffer.
Lösung:
Aktivieren Sie die doppelte Pufferfunktion von DataGridView durch Reflexions- oder Subklassermethoden.
Erstellen Sie eine Unterklasse von DataGridView, entdecken Sie die DoubleBuffen -Eigenschaft:
public class DBDataGridView : DataGridView
{
public new bool DoubleBuffered
{
get { return base.DoubleBuffered; }
set { base.DoubleBuffered = value; }
}
public DBDataGridView()
{
DoubleBuffered = true;
}
}
Fügen Sie diese Klasse dem Projekt hinzu und setzen Sie DoubleBuffering auf true.
doubleBuffering programmgesteuert mit Reflexion festlegen:
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 });
}
rufen Sie setDoubleBuffer an, um die DoubleBuffering von DataGridView zu wechseln.
Durch Aktivieren von DoubleBuffering zeichnet DataGridView Updates mithilfe von Off-Screen-Puffern, reduziert das Flackern und Stottern bei häufigen Updates.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3