Hej, ved ikke lige om det er det ude efter, men denne virker feks. ved åbning af en bestemt form:
Me.ShortcutMenuBar = "Navn på genvejsmenu", koden skal lægges ved åbning på formen. Koden kan også benyttes feks. ved klik i kontrolelementer feks. tekstbokse e.t.c
Jeg ved det faktisk heller ikke, men jeg undrer mig blot over, hvorfor du er interesseret i det. Er en genvejsmenu ikke karakteriseret ved, at den dukker frem ved et højreklik med musen? Det kan vel ikke være meget nemmere? Blot nysgerrig.
:-) Det er somænd fordi jeg gerne vil bruge den i forbindelse med et højreklik på en post i et treeview(ActiveX-kontrollen). Og den skal så vise forskellige menuer alt efter hvilken type post der klikkes på...
Tror ikke at treewviw kontrollen kan håndtere denne egenskab, arbejder selv med listviewkontrollen, og her virker egenskaben ShotCutMenuBar ikke. Med 06/04-2005 10:54:30 kan man håndtere flere genvejsmenuer på samme form alt efter hvilket kontrolelement man klikker på
aandersen -> Jeg er helt klar over at ShotCutMenuBar ikke umiddelbart kan bruges. Det er derfor jeg har et problem :-)
Jeg har et stykke kode der fanger højreklik på en post i mit treeview - spørgsmålet er så om man kan lave et eller andet a'la: shortCutMenu.Open("MenuNavnEllerIDEllerNoget")
Hmm, ved det ikke, men det er da værd at teste, hvis jeg finer en løsning poster jeg den her :o)Problemet er at treeviewkontrollen kalder MSCOMCTL.OCX, denne fil har begrænset mulighedder i forhold til access-miljøet! hvis man arbejder med den i et rent VB-miljø er mulighedderne langt større. Et tip: prøve at søge på treeview i VB-kategorien, der er flere spændende ting som kan bruges.
Følgende virker til at fange højreklik. Men problemet er stadig menuen: Private Sub ProeveTrae_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long) If Button = vbRightButton Then
Rettelse - følgende fanger højreklikket: Private Sub ProeveTrae_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long) If Button = 2 Then
Ja det er her den berømte hund ligger begravet 06/04-2005 11:42:42, jeg ved det simpelthen ikke, måske der kommer en VBA-haj forbi denne tråd og løser det, det ville bare være dejligt :o)
Jeg har lavet et lille eksempel du kan lege videre med.
Private Sub TreeView7_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long) Dim genvMenu As CommandBar Set genvMenu = Application.CommandBars("PopUpGenvej") If Button = 2 Then If 1 = 1 Then genvMenu.Controls(1).Caption = "Hej" genvMenu.Controls(1).OnAction = "=MsgBox('1=1')" genvMenu.ShowPopup
End If End If End Sub
Det kræver at du først opretter en genvejsmenu ved navn: PopUpGenvej Vis -> værktøjslinjer -> tilpas Ny -> indtast navnnet på din værktøjslinje: PopUpGenvej egenskaber -> Type = genvejsmenu
Hej mikkelk, ja det kunne altså lade sig gøre :o), når bare de rigtige VBA-hajer kommer til. Forøvrigt kræver det en reff. til Microsoft Office (versionnr) Objekt Libray. Glad for at du fik det til at virke.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.