У меня есть ListView в VB.NET 2013, работающий в VirtualMode, который я использую для отображения активного журнала. Он отлично работает, за исключением случаев, когда у меня есть элемент, сфокусированный вне видимых границ ListView: в этом случае, когда я добавляю элемент в ListView, он мерцает, прокручивая его до сфокусированного элемента, а затем немедленно возвращается в предыдущую позицию.ListView мерцает, когда объект сфокусирован
элемент управления ListView также DoubleBuffered используя этот код:
Dim pi As PropertyInfo = ListView1.GetType.GetProperty("DoubleBuffered", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
pi.SetValue(ListView1, True, Nothing)
Кроме того, я обнаружил, что, когда я иду в верхней части ListView, это подводит меня к сфокусированного пункту, и не вернуться ,
Если я пытаюсь отключить режим с двойной буферизацией, каждый раз, когда я добавляю элемент, каждый раз, когда я добавляю элемент, белая рамка окрашивается, и это неприемлемо, так как журнал добавляет много элементов каждую секунду.
'журнал добавляет много элементов каждую секунду.« Это не очень удобно: пользователь не может быстро это прочитать. Похоже, вы слишком часто обновляете GUI, слишком часто. – LarsTech
Я знаю, но журнал берется из внешнего источника: это системный журнал Android. Поэтому у меня нет контроля над количеством элементов. – MMauro