VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "ListBoxTooltip"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

' --- The ListBoxTooltip class
'
' Usage in the client form:
'
'    Dim lstTT As New ListBoxTooltip
'
'    Private Sub Form_Load()
'        Set lstTT.ListBox = List1
'      End Sub
'    Private Sub Form_Unload(Cancel As Integer)
'        Set lstTT.ListBox = Nothing
'    End Sub

Public WithEvents ListBox As ListBox
Attribute ListBox.VB_VarHelpID = -1

Private Sub ListBox_MouseMove(Button As Integer, Shift As Integer, X As Single, _
    Y As Single)
    Dim oldFont As StdFont, itemIndex As Long

    ' since a listbox doesn't have a TextHeight method
    ' we must borrow it from its Parent
    With ListBox.Parent
        Set oldFont = .Font
        Set .Font = ListBox.Font
        ' determine which element the mouse is on
        itemIndex = Y \ .TextHeight("A") + ListBox.TopIndex
        ' restore fonts
        Set .Font = oldFont
    End With

    ' set the tooltip to the current item's string
    If itemIndex < ListBox.ListCount Then
        ListBox.ToolTipText = ListBox.List(itemIndex)
    Else
        ListBox.ToolTipText = ""
    End If

End Sub




