Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0013: Listboxeinträge individuell mit ToolTip versehen

 von 

Beschreibung 

Manchmal kann es sinnvoll sein, zu den verschiedenen Einträgen in einer Listbox begleitende Informationen zur Verfügung zu stellen. Dieses kleine Programm ermöglicht deshalb zu jedem Eintrag einer Listbox einen beliebigen ToolTip einzuspielen.

Schwierigkeitsgrad:

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

SendMessageA (SendMessage)

Download:

Download des Beispielprojektes [2,44 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Listen-Steuerelement "List1"

Option Explicit

'Deklaration: Globale API-Konstanten
Private Const LB_ITEMFROMPOINT As Long = &H1A9&

'Deklaration: Globale API-Funktionen
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
    ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

'Deklaration: Globale Form-Variablen
Dim arrstrItem(0 To 8) As String
Dim arrstrToolTip(0 To 8) As String

Private Sub Form_Load()
    Call Liste_Fuellen
End Sub

Private Sub Liste_Fuellen()
    'Deklaration: Lokale Prozedur-Variablen
    Dim i As Long

    arrstrItem(0) = "Karotten"
    arrstrItem(1) = "Rüben"
    arrstrItem(2) = "Spinat"
    arrstrItem(3) = "Kartoffeln"
    arrstrItem(4) = "Kohl"
    arrstrItem(5) = "Pilze"
    arrstrItem(6) = "Erbsen"
    arrstrItem(7) = "Salat"
    arrstrItem(8) = "Kolatten"

    arrstrToolTip(0) = "sind gut für die Augen"
    arrstrToolTip(1) = "braucht man um Zucker zu raffinieren"
    arrstrToolTip(2) = "hat wenig Eisen"
    arrstrToolTip(3) = "haben alle Bauern"
    arrstrToolTip(4) = "ist nicht mehr Kanzler"
    arrstrToolTip(5) = "sind giftig"
    arrstrToolTip(6) = "verursachen Blähungen"
    arrstrToolTip(7) = "schmeckt nicht"
    arrstrToolTip(8) = "gibts nicht"

    For i = 0 To UBound(arrstrItem)
        List1.AddItem (arrstrItem(i))
    Next i
End Sub

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)
    'Deklaration: Lokale Prozedur-Variablen
    Dim lngIndex As Long
    Dim lngPosX As Long
    Dim lngPosY As Long

    lngPosX = CLng(x / Screen.TwipsPerPixelX)
    lngPosY = CLng(Y / Screen.TwipsPerPixelY)

    lngIndex = SendMessage(List1.hwnd, LB_ITEMFROMPOINT, 0, ByVal (lngPosY * 65536 + lngPosX))

    If lngIndex > -1 And lngIndex < List1.ListCount Then
        List1.ToolTipText = arrstrToolTip(lngIndex)
    Else
        List1.ToolTipText = ""
    End If
End Sub


'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 8 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Timm Linder am 25.02.2003 um 15:07

Praktisch dieser Tipp, sowas habe ich schon immer gesucht.....

@Jürgen Springer:
Bei mir funktioniert das ohne Probleme (Win XP, VB6 SP5)...

@Roland Woitok:
Ja, das habe ich mich auch schon gefragt, mit vbCrLf oder anderen Konstanten funktioniert es jedenfalls nicht. Ich denke mal, dass man dafür eine andere Art von Tooltip braucht, vermutlich ein Zusatz-Steuerelement.

Kommentar von TheShibbyOne am 10.01.2003 um 18:26

ähhh...wat is??

Kommentar von Mok am 10.06.2002 um 17:32

Hallo Leute, meine Frage ist wie kann ich die aktuell eingelesene Daten (Über einer Schnittstelle) in eine Datenbank speichern.
und zwar in eine excel Datenbank.

Kommentar von peter am 06.03.2002 um 15:37

Sollte man nicht erst mal Deutsch lernen, bevor man Programmieren will ?

Kommentar von Jürgen Springer am 08.01.2002 um 14:52

Sorry!!! Falscher tip
diser funzt echt gut

Kommentar von Jürgen Springer am 08.01.2002 um 14:47

leider funktionirt der tip nicht wen die einträge mer sind als angezeikt werden können. wen man runter scrolt merkt der tip es nicht und nimt den falschen listindex.
wie behebe ich das???

Kommentar von Steffen Ludloff am 24.04.2001 um 14:24

Wie kann ich so etwas im ListView machen? Ich weiß nicht, welche Konstante ich anstelle von Private Const LB_ITEMFROMPOINT = &H1A9
nehmen soll. Können Sie mir einen Tip geben?

Kommentar von Roland Woitok am 12.03.2001 um 17:53

Ist es möglich einen Tooltiptext in mehereren Zeilen darzustellen (wenn der Text etwas länger ist)?