2013-08-20 1 views
0

Есть ли хорошее/короткое решение для subj?Проверить, выбран ли выбранный элемент [virtual ListView в подробном представлении]

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

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

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

Возможно, есть более простой способ?

ответ

2
listView1.Items[SelectedItemIndex].Bounds.IntersectsWith(listView1.ClientRectangle) 

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

+0

'var visible = listView1.Items [listView1.SelectedIndices [0]]. Bounds.IntersectsWith (listView1.ClientRectangle)' и он отлично работает, спасибо! – Sinatr