Теперь я испытываю низкую производительность элемента управления списком, когда будет размещено больше данных (например, около 100 записей списка). Проблема приводит к мерцанию при прокрутке. Хотя я мог бы решить проблему вертикального мерцания, добавив код для активации двойной буферизации (я не знаю, нужен ли он для использования, но я показываю код ниже), мерцание при горизонтальной прокрутке остается. И дело не только в мерцании. Перемещение ползунка кажется медленным, так как столбцы и его записи перерисовываются при перемещении ползунка.
Это не видно при наличии 1–5 записей в списке, но начинается примерно с 10–15 и становится хуже по мере перемещения. больше записей, которые я добавил в список. Я читал, что представление списка Winforms перерисовывает все свое содержимое даже при небольших изменениях.
Горизонтальная полоса прокрутки активируется автоматически, но я не могу получить к ней доступ. Кто-нибудь знает, что я могу сделать, чтобы хотя бы уменьшить медленное движение? Было бы уже что-то, если бы я мог получить доступ к горизонтальной полосе прокрутки элемента управления списком.
Код: Выделить всё
public static class ControlExtensions
{
public static void SetDoubleBuffered(this System.Windows.Forms.ListView listView, bool doubleBuffered = true)
{
listView.GetType()
.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)!
.SetValue(listView, doubleBuffered, null);
}
}

Подробнее здесь: https://stackoverflow.com/questions/787 ... p-winforms