вопрос:
обновить DataGridView в режиме реального времени, особенно когда скорость обновления высока, а количество ячеек большое, визуальные дефекты, такие как мерцание и лаг, склонны.
]анализировать:
технология двойной буферизации решает эти проблемы с помощью буферов за кадром.
]Решение:
включить двойную буферизацию функции DataGridView с помощью методов отражения или подклассирования.
]создать подкласс DataGridView, разоблачить свойство с двойным буфером:
public class DBDataGridView : DataGridView
{
public new bool DoubleBuffered
{
get { return base.DoubleBuffered; }
set { base.DoubleBuffered = value; }
}
public DBDataGridView()
{
DoubleBuffered = true;
}
}
добавьте этот класс в проект и установите двойной буферинг в True.
]установите программно с использованием Reflection:
]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 });
}
Call SetDoubleBuffer, чтобы переключить двойную буферизацию DataGridView.
], включив Double Buffering, DataGridView будет нарисовать обновления с использованием буферов за кадром, уменьшая мерцание и заикание во время частых обновлений.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3