[VB.NET] Simuler un clique droit en faisant un clique gauche sur un bouton

Résolu
Gabilach Messages postés 200 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 28 septembre 2014 - 4 mars 2012 à 03:46
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 4 mars 2012 à 18:31
Bonjour,
j'est fait des petites recherches très rapide je l'avoue, mais je n'est rien trouver à correcte et de concret à propos de ceci, comment simuler un clique droit lorsque l'on clique fauche sur un bouton.

Pour vous expliquez le comment du pourquoi, je souhaite afficher un menu contextuel quand je clique sur ce bouton, il y a déjà une propriété pour que le menu s'affiche, mais seulement avec un clique droit sur ce bouton, je voudrait donc pouvoir simuler ce "clique gauche".

Merci d'avance !

----------------------------------------------
Bonne programmation !!!
Gabilach...

8 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
4 mars 2012 à 15:52
le code d'au dessus
le menu s'affiche à droite du button
la syntaxe
 ContextMenu.Show(x ,y)


à toi de definir x et y
où veux tu afficher le menu par rapport à ton
bouton ?
3
Gabilach Messages postés 200 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 28 septembre 2014
4 mars 2012 à 16:13
Problème résolu ! Enfaite j'avais oublier d'ajouter la location de la form à celle du bouton pour que le menu s'affiche au bonne endroit, donc un grand merci à toi , au finale sa donne sa :

Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseClick
        ContextMenu.Show(Me.Location.X + Button1.Location.x, Me.Location.y + Button1.Location.y)
End Sub


----------------------------------------------
Bonne programmation !!!
Gabilach...
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 mars 2012 à 07:40
Bonjour,
Je vois deux possibilités :
- intervertir les fonctionnalités de la souris (possible par une fonction de l'api de Windows) lorsque le contrôle concerné a le focus
ou
- intercepter le Mouse_down et simuler alors l'utilisation du bouton droit (sendkeys ou autre)

Mais est-ce vraiment recommandable ?
La première est carrément gênante (i panne, etc ...)
La seconde est moins lourde de conséquences, mais est de nature à surprendre l'utilisateur et (en tout état de cause) à l'empêcher de saisir, etc ...


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
4 mars 2012 à 10:09
Bonjour

la question est pourquoi veux tu te servir du
clique gauche et non du clique droit pour afficher le menu contextuel ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gabilach Messages postés 200 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 28 septembre 2014
4 mars 2012 à 13:41
Bonjour, pour répondre très clairement à ta réponse ShayW, l'utilisateur ne va pas forcément pensez à cliquer droit sur mon bouton ( c'est un bouton qui affiche rapidement des paramètres dans un menu contextuel ). Je sais, je pourrait l'indiquez, mais personnellement sa serait plus logique pour moi qu'on fasse un simple clique gauche dessus
Sinon pour Ucfoutu je vais chercher un peu au sujet de mouse down


----------------------------------------------
Bonne programmation !!!
Gabilach...
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
4 mars 2012 à 15:18
Bonjour, pour répondre très clairement à ta réponse ShayW, l'utilisateur ne va pas forcément pensez à cliquer droit sur


tiens bah si

si tu veux avec le clique gauche

attention dans la propriété du contextmenu
de ton bouton met None

 Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseClick
        ContextMenu.Show(DirectCast(sender, Button).Right + 2, DirectCast(sender, Button).Bottom + 2)
       
End Sub
0
Gabilach Messages postés 200 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 28 septembre 2014
4 mars 2012 à 15:41
Ce code marche très bien merci, mais maintenant le problème c'est que je voudrais que le menu contextuel s'affiche sur mon bouton ( avec la propriété location ), le problème est qu'il s'affiche n'importe où sur l'écran, si tu avais une petite idée de comment faire

----------------------------------------------
Bonne programmation !!!
Gabilach...
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
4 mars 2012 à 18:31
 ContextMenu.Show(Me.Location.X Button1.Location.x, Me.Location.y + Button1.Location.y)



puisque le button1 se trouve dans ta form
équivalent à dire

 ContextMenu.Show(Button1.Location.x,  Button1.Location.y)

comme tu as écrit
le contextmenu va recouvrir ton bouton puisque tu
le positionne au meme coordonnée que le bouton
positionne le en dessous ou à droite
tu as button1.left button1.top button1.bottom
button1.right

button1.location.x équivalent à button1.left
button1.location.y "" " button1.top
0
Rejoignez-nous