2014-01-13 4 views
0

Я пытаюсь определить, какие ячейки пользователь имеет свой курсор на ListView, в настоящее время у меня естьidentfying ListView клеток при наведении курсора мыши

Private Sub ListView1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseMove 
    Dim cellnum As ListViewItem = ListView1.GetItemAt(e.X, e.Y) 
     tooltip1.SetToolTip(ListView1, thisItem.Text) 
end sub 

, который не функционирует. Как бы я выполнить эту

+1

http://www.codeproject.com/Articles/5270/ListView-with-Item-Hover-Event? Также это: http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.itemmousehover(v=vs.110).aspx. – Neolisk

ответ

2

Если под «клетки» вы имеете в виду подэлемент, использовать Трассировка найти подэлемент:

Dim ht As ListViewHitTestInfo = lvex.HitTest(pt.X, pt.Y) 
if ht.Item IsNot Nothing then 
     IndexOfSubItemAtXY = ht.Item.SubItems.IndexOf(ht.SubItem) 
End if 

Настройка всплывающей подсказки на MouseMove может оказаться проблематичным, хотя. Существует ItemMouseHover, где вы можете выяснить, какая ячейка/подэлемент завершена, и соответственно установить подсказку/

+0

Я с трудом выяснить, заявления некоторых из этих переменных ByVal пт Как System.Windows.Forms.MouseEventArgs я предполагаю, что для PT что я должен объявить подэлемент и деталь как –

+1

я только что проверил и у меня это, но это только срабатывает только при наведении ITEM ... перемещается по подэлементам и не сбрасывается или не восстанавливается. 'Pt' будет' e.X' и 'e.Y' от большинства событий мыши – Plutonix

+0

что о« SubIndex »и« Item » –

Смежные вопросы