C'est très simple : Créer un module, et coller la source suivante :
Public Const WM_RBUTTONDOWN = &H204 Public Const LB_ITEMFROMPOINT = &H1A9 Public Const LB_SETHORIZONTALEXTENT = &H194 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long
Public Sub OpenContextMenu(FormName As Form, MenuName As Menu) 'Tell system we did a right-click on the mdi Call SendMessage(FormName.hwnd, WM_RBUTTONDOWN, 0, 0&) 'Show my context menu FormName.PopupMenu MenuName End Sub
Pour activer votre popupmenu, au lieu du menu standard du textbox, il suffit d'appeler cette routine. Par exemple si je veux afficher le context menu "mnuNote" sur la textbox "txtBlocNote" :
Private Sub txtBlocNote_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then Call OpenContextMenu(Me, Me.mnuNote) End If End Sub
clafouti Auteur d'un excellent freeware développé en VB téléchargeable à l'adresse http://users.chello.be/cr41007/index.html Idées, critiques et commentaires sont les bienvenues.
------------------------------- Réponse au message : -------------------------------
Bonjour KARIM, est ce que t'as trouvé la solution pour désactiver le menu qui s'affiche lorsqu'on clique par le bouton droit de la souris sur une zonne de texte. Moi aussi je suis bloqué la dessus. S_karim15@hotmail.com Merci
------------------------------- Réponse au message : -------------------------------
Bonjour,
Existe-t-il un moyen de désactiver le Popupmenu qui se trouve par défaut pour le Textbox, c'est pour le remplacer par un autre.
Pour l'instant, quand le clique sur le bouton droit de la souris :
Sous NT : le popupmenu par défaut s'affiche dans le coin supérieur gauche de l'écran, et je dois cliquer une seconde fois pour que le mien s'affiche.
Sous 98 : je dois cliquer deux
Je recherche une solution, pour que mon popupmenu s'affiche au premier clic droit.
Merci A+
|