guten Morgen L.Vira,
ich habe es nun endlich geschafft mit Eurer Hilfe und Beispielcodes ein Kontextmenü (oder sowas ähnliches) in eine Userform zu integrieren. Funzt auch super bis auf ein Manko: Das Kontextmenü öffnet sich nachdem jeweiligen Klick gleich nochmal (leicht versetzt). Dies ist unschön und kann erhebliche Probleme verursachen. Kann mir jemand sagen woran es liegt? Anbei mein Code. Herzlichsten Dank für Eure Hilfe.
Karsten
Private Sub t58_MouseDown(ByVal Button As Integer, ByVal shift As Integer, ByVal x As Single, ByVal y As Single)
MouseDown (Button)
End Sub
Private Sub MouseDown(Button As Integer)
Dim cmbX As CommandBar
Dim cbb1 As CommandBarButton
Dim cbb2 As CommandBarButton
Dim cbb3 As CommandBarButton
On Error Resume Next
Application.CommandBars("XM").Delete
If Button = 2 Then
Set cmbX = CommandBars.Add(Name:="XM", Position:=msoBarPopup, Temporary:=True)
With cmbX.Controls
Set cbb1 = .Add
Set cbb2 = .Add
Set cbb3 = .Add
With cbb3
.Caption = "Löschen"
.OnAction = "InhaltLöschen2"
.Style = msoButtonIconAndCaption
.TooltipText = "Löscht den Inhalt des Textfeldes"
End With
With cbb2
.Caption = "Einfügen"
.OnAction = "Zwischenablage2"
.Style = msoButtonIconAndCaption
.TooltipText = "Kopiert die Zwischenablage in das Textfeld"
End With
With cbb1
.Caption = "Kopieren"
.OnAction = "KopiereInhaltInZwischenablage2"
.Style = msoButtonIconAndCaption
.TooltipText = "Kopiert den gesamten Inhalt in die Zwischenablage"
End With
End With
End If
cmbX.ShowPopup
End Sub
Private Sub KopiereInhaltInZwischenablage()
Dim inhalt As DataObject
Dim Feld As Variant
Dim text As String
Set inhalt = New DataObject
On Error GoTo Abbruch:
Feld = frmProjektdaten.ActiveControl.Name
text = frmProjektdaten.ActiveControl
inhalt.SetText text
inhalt.PutInClipboard
Abbruch:
End Sub