Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Objekte / ListBox / ToolTip

Automatische ToolTips für lange Einträge

Mit unten stehender Routine ist es sehr einfach möglich, den ToolTip-Text einer ListBox immer auf genau den Eintrag zu setzen, auf den der Mauszeiger gerade zeigt. Dies ist insbesondere dann sehr sinnvoll, wenn die Einträge breiter als die ListBox selbst sind. Optional kann der Routine auch ein Standard-ToolTip mitgegeben werden; Dieser wird angezeigt, falls der Mauszeiger auf keinen Eintrag zeigt.

Beispiel

Private Sub Form_Load()
  Dim i As Long
  
  For i = 1 To 5
    List1.AddItem "ein sehr langer text mit Nummer: " & i
  Next i
End Sub

Private Sub List1_MouseMove(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
  ListBoxToolTip List1, Y, "(leer)"
End Sub

Code

Private Sub ListBoxToolTip( _
    ByRef lst As ListBox, _
    ByVal Y As Single, _
    Optional ByRef DefaultToolTip As String = "" _
  )
  Dim Index As Long
  Dim ParentFont As StdFont
  
  With lst
    'Font anpassen & Index bestimmen:
    With .Parent
      Set ParentFont = .Font
      Set .Font = lst.Font
      Index = Y \ .TextHeight("")
      Set .Font = ParentFont
    End With

    'Index auswerten:
    Index = Index + .TopIndex
    If Index < .ListCount Then
      .ToolTipText = .List(Index)
    Else
      .ToolTipText = DefaultToolTip
    End If
  End With
End Sub

© Jost Schwider, 29.12.2000-29.12.2000 - http://vb-tec.de/lst_tt.htm