Я использую элемент управления ListView в виртуальном режиме и режиме OwnerDraw для отображения нескольких элементов. Есть ли способ проверить, является ли определенный элемент видимым (внутри клиентской области элемента управления), не вызывая событие ничьей или событие RetrieveVirtualItem?Проверка наличия элемента в виртуальном ListView
Проблема в том, что у меня есть фоновый поток, который периодически добавляет больше элементов в список. Но по какой-то причине каждый раз, когда я добавляю больше элементов (увеличивая VirtualListSize), он вызывает RetrieveVirtualItem для последнего добавленного элемента, хотя он нигде не находится рядом с видимым диапазоном. И, конечно, я хочу только рисовать предметы, которые на самом деле видны.
Любые идеи?
Я думал, что событие DrawItem только уволено за видимые предметы. –
Нет, это определенно увольняется каждый раз, когда я изменяю VirtualListSize (для последнего элемента в списке). –