Visual Basic 6. Руководство разработчика


Использование метода - часть 3


Set LItem = ListViewl.HitTest(ScaleX(X, vbPixels, vbTwips),

ScaleY(Y, vbPixels, vbTwips))

Значения переменных Х и Y сначала преобразуются в твипы, а затем переда­ются методу HitTest. В результате возвращается хранящаяся в переменной LItem ссылка на объект, на котором выполнен двойной щелчок. Эта переменная объяв­ляется как Listitem.

Dim LItem As Listltem

Используя переменную LItem, можно получить доступ к свойствам объекта, на котором был выполнен двойной щелчок. Например, можно организовать подсветку этого элемента непосредственно из программы

LItem.Selected = True

или организовать чтение элементов нижнего уровня как членов семейства.

LItem.ListSubItems

Если двойной щелчок выполнен в пределах элемента управления ListView в месте, не содержащем объектов, то переменная LItem получит значение Nothing. В этом случае попытка обратиться к свойствам элемента управления приведет к ошибке выполнения. Чтобы избежать этого, используйте оператор

On Error Resume Next

и организуйте проверку значения переменной LItem.

On Error Resume Next

Set LItem = ListViewl.HitTest(ScaleX(X, vbPixels, vbTwips), _

ScaleY(Y, vbPixels, vbTwips))

If LItem Is Nothing Then Exit Sub

(набор операторов, обеспечивающих доступ к значениям свойств LItem)

Ниже приведен текст программы обработчика события

DblClick элемента управ­ления ListView. Этот фрагмент программы (без операторов, с помощью которых выполняется обработка членов переменной LItem} можно использовать непосред­ственно в пользовательской программе, если требуется организовать реагирование программы на двойной щелчок на ListView.

Программа 13.8. Обработчик события DblClick элемента управления ListView

Private Sub ListViewl_DblClick()

Dim dPoint As POINTAPI

Dim LItem As Listltem

 

GetCursorPos dPoint

X = dPoint.X - ScaleX(Me.Left + ListViewl.Left, vbTwips,

vbPixels)

Y = dPoint.Y - ScaleY(Me.Top + ListViewl.Top, vbTwips, vbPixels)

On Error Resume Next

Set LItem = ListViewl.HitTest(ScaleX(X, vbPixels, vbTwips),     _




Начало  Назад  Вперед



Книжный магазин