Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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
Inhaltsverzeichnis

Rechtsklick in Listview Element

Rechtsklick in Listview Element
10.02.2022 23:49:15
Robert
Hallo Leute,
Ich suche nach einer Erkennung eines Rechtsklick auf ein Item in einem Listview Element.
Mit einer Listbox ist das recht einfach..

Private Sub ListBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
If Button = vbKeyRButton Then
If UserForm.ListBox.List(UserForm.ListBox.ListIndex) >= 0 Then
... Tu Was ...
End If
End If
Für das Listview Element habe ich, ausser ein paar Beiträgen zu VB.net, nicht viel gefunden...
Kann man das an VBA anpassen?

Private Sub ListView1_MouseDown(ByVal sender As Object,ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDown
' Rechtsklick?
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim oItem As ListViewItem = ListView1.GetItemAt(e.X, e.Y)
If oItem IsNot Nothing Then
' ... und Kontextmenü anzeigen
ContextMenuStrip1.Show(ListView1, e.X, e.Y)
End If
End If
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nur allgemein!
11.02.2022 07:13:58
RPP63
Moin!
Das Listview-Control gibt es bereits seit mindestens 15 Jahren nicht mehr in Excel-VBA.
Es ist Bestandteil der MSCOMCTL.ocx
Zu Ereignissen, die mit einem Control möglich sind, siehe
https://www.online-excel.de/excel/singsel_vba.php?f=160
Gruß Ralf, der natürlich offen lässt
AW: Rechtsklick in Listview Element
11.02.2022 10:40:46
Nepumuk
Hallo Robert,
so:

Private Sub ListView1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
Dim objListItem As ListItem
If Button = vbKeyRButton Then
Set objListItem = ListView1.HitTest(x, y)
If Not objListItem Is Nothing Then
MsgBox "Hallo"
Set objListItem = Nothing
End If
End If
End Sub
Gruß
Nepumuk
Anzeige
AW: Rechtsklick in Listview Element
11.02.2022 11:31:56
Robert
Ah ok Danke Nepumuk.
Ich habe allerdings vergessen mit einzufügen, dass genau das Element über dem die Maus sich gerade befindet auch angewählt werden soll.
Kanndt du mir da auf die Sprünge helfen, da nicht genau weiß wie ich da die Itemid extrahieren soll.
Das ganze soll dann ein Kontextmenü öffen, bei dem 2..3 Aktionen mit dem Element ausgeführt werden sollen.
So hatte ich das zuletzt mit der Listbox gelöst.

Private Sub ListSelectedAnlagen_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
DragIndex = -1
If Button = 2 Then
With ListSelectedAnlagen
If .ListIndex = -1 Then
MsgBox "Erst ein Item wählen"
Exit Sub
End If
sTxt = .ListCount - 1
End With
Run "ListSelectedAnlagenRightClickMenu"
End If
End Sub


Anzeige
AW: Rechtsklick in Listview Element
11.02.2022 12:33:50
Nepumuk
Hallo Robert,
dann so:

Private Sub ListView1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
If Button = vbKeyRButton Then
Call Application.OnTime(Now, "Test")
End If
End Sub
In einem Standardmodul:

Public Sub Test()
MsgBox UserForm1.ListView1.SelectedItem.Index
End Sub
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige