Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
720to724
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
720to724
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Rechter Mausklick/Mousedown in Listboxen

Rechter Mausklick/Mousedown in Listboxen
25.01.2006 13:45:18
Arthur
Hallo Forum.
Mal wieder sitze ich vor Exel und denke an das Herber-Forum. Der Grund dafür ist, dass ich eine Listbox habe, bei der ich mittels einem MausKlick bzw. mit dem Event MouseDown der rechten Taste eine Zusatzinformation anzeigen lassen möchte. Leider erkenne ich mit der rechten Taste nicht, auf welchem Eintrag die Maus gerade steht. Mit der Linken Taste sind bereits entsprechende Routinen verbunden, sodass der Klick mit der linken Taste tabu ist.
Wie erkenne ich bei einem Klick/MouseDown der rechten Maustaste, welcher Listeneintrag gemeint ist?
Mit Dank für die Antwort
-Art

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rechter Mausklick/Mousedown in Listboxen
25.01.2006 14:39:47
volker
hallo arthur,
mir ist nur ein umweg über die Mausposition bekannt.

Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button <> 2 Then Exit Sub
If Int(Y / ListBox1.Font.Size) <> 0 Then element = Int(Y / ListBox1.Font.Size) - 1 Else element = 0
MsgBox element
End Sub

also ob rechte oder linke maustaste gedrückt kriegst du mit dem parameter Button hin
in welcher zeile du bist kriegst du wenn du die y position durch die size teilst
nun kannst du natürlich auch in einem bereich sein wo keine zeile mehr ist das muß man dann noch einbauen (entweder du nimmst immer listcount oder eine meldung)
hoffe du verstehst mich
Gruß volker.
Anzeige
AW: Rechter Mausklick/Mousedown in Listboxen
25.01.2006 19:30:39
volker
hallo,
sorry geht leider nur im prinzip ( bei 3 , 4 listbox einträgen)
wenn du mehr hast geht die rechnung nicht mehr , denke daß es noch einen zeilenabstand gibt den man dazuzählen muß , aber den kriege ich nicht raus :-(
gruß volker
AW: es geht
25.01.2006 23:27:24
volker
hallo ,
habe nun denke ich doch eine lösung.
das problem war ja der parameter listbox1.font.size
da kann ich nicht nachvollziehen was drinsteht und ob vba noch abstände zwischen den items einbaut.
deshalb gehe ich nun her und nehme noch zusätzlich 2Labels mit auf die oberfläche und schreibe da das gleiche wie in die listbox, allerdings bei einem label ein item weniger.
wenn ich nun label1.heigth - label2.heigth mache habe ich genau die höhe einer zeile.
das würde folgendermaßen aussehen:

Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button <> 2 Then Exit Sub  ' ausstieg wenn keine rechte Maustaste gedrückt
' füllen der textfelder für die beiden labels
' das füllen der labels bzw setzen der parameter kann natürlich auch da geschehen
' wo die listbox gefüllt wird.
For X = 0 To ListBox1.ListCount
t1 = t1 & "x" & vbCrLf
If X <> 0 Then t2 = t2 & "x" & vbCrLf
Next X
' labelparameter setzen
Label1.Visible = False
Label2.Visible = False
Label1.AutoSize = True
Label2.AutoSize = True
Label1.WordWrap = False
Label2.WordWrap = False
Label1.Font.Size = ListBox1.Font.Size
Label2.Font.Size = ListBox1.Font.Size
Label1.Caption = t1
Label2.Caption = t2
' berechnen des items
element = Int(Y / (Label1.Height - Label2.Height)) + ListBox1.TopIndex
If element > ListBox1.ListCount Then element = ListBox1.ListCount - 1
MsgBox element
End Sub

hier kannst du es anschauen:
https://www.herber.de/bbs/user/30395.xls
die lösung ist nun vielleich etwas abenteuerlich aber es scheint zu gehen
vielleicht kann mir jemand mit dem parameter size helfen
gruß volker.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen