pregunta:
Actualice DataGridView en tiempo real, especialmente cuando la velocidad de actualización es alta y el número de celdas es grande, los defectos visuales como parpadeantes y retraso son propensos a ocurrir.
analizar:
La tecnología de doble búfer resuelve estos problemas mediante el uso de buffers fuera de pantalla.
Solución:
Habilite la función de doble almacenamiento en búfer de DataGridView a través de métodos de reflexión o subclasificación.
cree una subclase de DataGridView, exponga la propiedad DoubleBuffered:
public class DBDataGridView : DataGridView
{
public new bool DoubleBuffered
{
get { return base.DoubleBuffered; }
set { base.DoubleBuffered = value; }
}
public DBDataGridView()
{
DoubleBuffered = true;
}
}
Agregue esta clase al proyecto y establezca DoubleBuffering en verdadero.
Establezca DoubleBuffering mediante programación usando la reflexión:
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 });
}
Llame setDoubleBuffer para cambiar el doble buffing de DataGridView.
Al habilitar DoubleBuffering, DataGridView dibujará actualizaciones utilizando búferes fuera de pantalla, reduciendo parpadeo y tartamudeo durante actualizaciones frecuentes.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3