Проверьте, виден ли выбранный элемент [виртуальный просмотр списка в подробностях]

Есть ли хорошее / короткое решение для Subj?

Я могу думать о:

  • получить TopItem индекс (в VirtualMode может ли он быть нулевым до создания элемента?), если индекс необходимого элемента меньше, то он невидим, в противном случае получить нижний видимый индекс (верхний индекс + listView.ClientSize.Height / GetItemRect(TopItem).Height) и если индекс нужного элемента больше, то он невидим. Иначе видно.

  • как-то обнаружить прокрутку и что-то сделать.

Или, может быть, есть более простой способ?

1 ответ

Решение
listView1.Items[SelectedItemIndex].Bounds.IntersectsWith(listView1.ClientRectangle)

Это решит вашу проблему.

Другие вопросы по тегам