Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listboxeintrag unter Mauszeiger

Listboxeintrag unter Mauszeiger
02.07.2008 17:11:51
Maria
Hallo zusammen,
ich möchte im MouseMove-Ereignis einer Listbox Zugriff auf den Eintrag unter dem Mauszeiger (also den zugehörigen Index) bekommen.
Alles, was ich im Netz gefunden habe, arbeitet in irgendeiner Form mit der SendMessage-Funktion, die aber ein Handle zu der Listbox benötigt.
Dieses Handle wird in dem von mir gefundenen Code zum Teil einfach über Listbox1.hwnd geholt, das funktioniert bei mir aber leider nicht :-(
Weiß irgendjemand Rat?
Für Hilfe sehr dankbar
Maria

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listboxeintrag unter Mauszeiger
02.07.2008 17:46:43
ChristophM
Hallo Maria,
Um den SendMessage kommst du wohl nicht drum rum. Aber das ist auch kein Problem, du musst eben die API's im Code benennen.
Hier ein Bsp. aus meinem Fundus.
https://www.herber.de/bbs/user/53538.xls
Gib mir Bescheid, wie du damit parat kommst.
Grüße
ChristophM

AW: Listboxeintrag unter Mauszeiger
02.07.2008 19:36:00
Maria
Hei Christoph,
erst eimal vielen Dank!! Es scheint zu funktionieren.
aus Deinem Code habe ich nur den einen Teil:
intIndex = Round((Y - 5) / 10)
übernehmen müssen, um an den Index zu kommen. (gar keine SendMessage und nix...)
Nun frage ich mich, wie das mit so fixen Werten ("5" und "10") funktionieren kann und ob das bei allen Auflösungen dann auch läuft.
Weißt Du das?
Vielen Dank auf jeden Fall,
Gruß von
Maria

Anzeige
AW: Listboxeintrag unter Mauszeiger
03.07.2008 07:19:00
ChristophM
Hallo Maria,
die Berechnung hängt von der Schriftgröße ab. In meinem Beispiel ist die Schrift 'Verdarna 9'.
Nepumuks Lösung ist hie eleganter. Auf meinen Code übersetzt wäre dann:
statt:
Me.lstKat.ListIndex = Round((Y - 5) / 10)
dieses einzusetzen:
Me.lstKat.ListIndex = Int(Y / (Me.lstKat.Font.Size + 2))
Grüße
Christoph

AW: Listboxeintrag unter Mauszeiger
03.07.2008 17:46:26
Maria
Hei Christoph,
noch einmal vielen Dank!
Aaaber, meine Liste ist zum Scrollen und das wird ja gar nicht verarbeitet.... Es werden quasi immer einfach die sichtbaren Einträge gezählt... :-((
Naja, ich schau mal, Du hast mir auf jeden Fall sehr geholfen,
Gruß von
Maria

Anzeige
AW: Listboxeintrag unter Mauszeiger
02.07.2008 17:49:47
Nepumuk
Hallo Maria,
na wenn das alles ist, dann hab ich was für dich.
' **********************************************************************
' Modul: UserForm2 Typ: Userform
' **********************************************************************

Option Explicit

Dim lintFontSize As Integer

Private Sub ListBox1_MouseMove(ByVal Button As Integer, _
        ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    Dim intListIndex As Integer
    intListIndex = ListBox1.TopIndex + Int(Y / lintFontSize)
    If intListIndex <= ListBox1.ListCount - 1 Then _
        Label1.Caption = ListBox1.List(intListIndex, 0)
End Sub

Private Sub UserForm_Activate()
    lintFontSize = ListBox1.Font.Size + 2
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, _
        ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    Label1.Caption = ""
End Sub

Kommst du klar damit?
Gruß
Nepumuk

Anzeige
... funktioniert leider nicht :-(
02.07.2008 19:27:38
Maria
Hallo Nepumuk,
vielen Dank für Deine Antwort.
Ich habe es mit Deinem Code probiert, aber, da bei mir ListBox1.TopIndex immer eine 0 zurückgibt, funktioniert es leider nicht...
Weißt Du Rat?
Vielen Dank
Maria

AW: ... funktioniert leider nicht :-(
02.07.2008 20:18:00
Nepumuk
Hallo Maria,
das ist auch gut so, denn wenn er nicht Null wäre, dann wird das Formular nicht angezeigt, oder die Liste ist leer. Versuch es mal mit der Beispielmappe:
https://www.herber.de/bbs/user/53543.xls
Gruß
Nepumuk

hast Recht, jetzt läuft's
03.07.2008 17:57:00
Maria
Hei Nepumuk,
ja, stimmt es läuft!
Super, vielen Dank!
Gruß von
Maria

Anzeige
AW: Listboxeintrag unter Mauszeiger
06.07.2008 16:33:00
Herbert
Hi,
interessante Lösung, leider geklaut!
mfg Herbert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige