Przesunięty przez: Artik 27-09-2019, 09:51 |
Menu kontekstowe przez CommandBars |
Autor |
Wiadomość |
BrunO
ExcelSpec


Wersja: Win Office 365
Pomógł: 187 razy Posty: 725
|
Wysłany: 17-03-2019, 22:48 Menu kontekstowe przez CommandBars
|
|
|
Próbuję wzbogacić moje formularze o menu kontekstowe. Znalazłem niby fajne gotowce, ale nie do końca rozumiem całość ich działania, więc próby dostosowania ich do moich potrzeb przynoszą taki sobie efekt.
Ale stwierdziłem, że załapałem wystarczająco, by zrobić to od podstaw po swojemu.
W klasie, która już wcześniej obsługiwała mi np. formatowanie dat dopisałem sobie obsługę menu kontekstowego. Docelowo działania mają być bardziej złożone, ale najpierw chciałem sprawdzić, czy cokolwiek zadziała.
Kod: | Private Sub txtBoxContext_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 2 Then
' right click
Set currObject = getActCtrl(parentForm)
MakePopUp
End If
End Sub |
Kod: | Sub MakePopUp()
'Remove any old instance of MyPopUp
On Error Resume Next
CommandBars("MyPopUp").Delete
On Error GoTo 0
Dim strTest As String
strTest = "KURŁA!"
'dodajemy przyciski
With CommandBars.Add(Name:="MyPopUp", Position:=msoBarPopup)
With .Controls.Add(msoControlButton)
.Caption = "&Kopiuj"
.FaceId = 19
.OnAction = "=CopyMacro()"
End With
With .Controls.Add(msoControlButton)
.Caption = "&Wklej"
.FaceId = 22
End With
With .Controls.Add(msoControlButton)
.Caption = "Wy&tnij"
.FaceId = 21
.OnAction = "EdytujMacro"
End With
With .Controls.Add(msoControlButton)
.Caption = "&Edytuj listę"
.FaceId = 31
.OnAction = "Debug.Print strTest"
End With
End With
'odpalenie PopUa
Application.CommandBars("MyPopUp").ShowPopup
End Sub
|
Kod: | Sub EdytujMacro()
MsgBox "Aloha!"
End Sub |
Oczywiście nie jest to kompletny kod, ale mam nadzieję, że pokazujący sedno problemu. Załącznika też na razie nie daję - wypreparowanie tylko tego co niezbędne wymagałoby ostrej dłubaniny, która dla rozwiązania problemu jest, mam nadzieję, zbędna.
Menu kontekstowe po prawokliku mi się pokazuje, ale wybranie jakiegokolwiek z przycisków nie daje żadnego efektu, żeby chociaż errorem sypnęło...
Pytanie brzmi więc, co mam zapisać po .OnAction, żeby odpalić np. EdytujMacro czy choćby Debug.Printa zrobić?
Bo chyba to, że trzymam ten kod w module klasy nie wpływa na działanie? |
|
 | ID posta:
364415
|
|
|
 |
|
|
|
Tajan

Pomógł: 4729 razy Posty: 10412
|
Wysłany: 18-03-2019, 07:38
|
|
|
BrunO napisał/a: | Bo chyba to, że trzymam ten kod w module klasy nie wpływa na działanie? | Procedury obsługujące poszczególne opcje powinny być umieszczone w module standardowym. |
|
 | ID posta:
364420
|
|
|
 |
|
|
BrunO
ExcelSpec


Wersja: Win Office 365
Pomógł: 187 razy Posty: 725
|
Wysłany: 18-03-2019, 10:16
|
|
|
Czyli wiedziałem, że dzwoni, tylko nie wiedziałem w którym kościele :)
Dzięki, mogę walczyć dalej. |
|
 | ID posta:
364426
|
|
|
 |
|
|
|
Nie możesz pisać nowych tematów Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
 |
Strona używa plików cookies.
Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe
|