VB.NET - Clic droit sur un bouton ? [Résolu/Fermé]

Signaler
Messages postés
33
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
2 mai 2018
-
Messages postés
14913
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 octobre 2020
-
Bonjour
est-il possible d'éxécuter du code après avoir clic droit sur un bouton ?

pour ceux qui ne voient pas le principe, un clic gauche sur un bouton (ou un clic conventionnel) permet en principe de faire une action tel qu'ouvrir une fenêtre, une boîte de dialogue (c'est le cas pour le clic d'un bouton). Mais un clic droit permettrait de faire une autre action, type copier un fichier.

Pour ceux qui n'aiment pas shématisé, je brode un morceau de code au hasard :


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form2.ShowDialog()
End Sub

Donc là on peut ouvrir une form. Mais avec le clic droit (ça n'existe pas mais admet on) on pourrait faire une autre action

Private Sub Button1_RightClick(sender As Object, e As EventArgs) Handles Button1.RightClick
My.Computer.Filesystem.CopyFile(path 1, path 2)
End Sub


Merci d'avance pour votre aide ! :)

2 réponses

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
258
Regarde MouseDown et MouseUp
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
33
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
2 mai 2018
5
'k, j'irais voir quand je serais de retour sur mon IDE :)
Messages postés
33
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
2 mai 2018
5
alors, merci pour cette info, cependant, en testant avec une msgbox, elle s'affiche, peu importe le clic effectué (clic gauche ou droit)
j'imagine qu'il va falloir utiliser les mouse events pour le clic gauche et droit... Je vous remercie encore ! :D
Messages postés
33
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
2 mai 2018
5
Alors, pour ceux qui se posaient la même question que moi, ce code fonctionne :

Private Sub Button1_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown
If e.Button = Button.MouseButtons.Left Then
Msgbox("clic gauche")
End If
If e.Button = Button.MouseButtons.Right Then
Msgbox("clic droit")
End If
End Sub
Messages postés
14913
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 octobre 2020
596
Bonjour.
C’est super de partager ta solution, encore mieux de vouloir utiliser les balises de codes.
Cependant, comme tu utilises la balise par défaut, ça donne un pavé tout gris et sans indentation
Voir ici comment bien les utiliser https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Voilà ton code, en couleur quand je précise qu’il s’agit de basic
Private Sub Button1_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown
   If e.Button = Button.MouseButtons.Left Then
          Msgbox("clic gauche")
    End If
    If e.Button = Button.MouseButtons.Right Then
           Msgbox("clic droit")
      End If
End Sub


Plutôt que faire 2 If, tu pourrais faire un if suivi d’un esle if.
En effet si c’est un click gauche, alors le test pour le click droit ne sera pas effectué. C’est donc plus rapide à l’exécution.

D’autre part, MsgBox n’est pas une instruction VB.Net. C’est un import de VB6. Les imports Vb6 marchent bien dans la majorité des cas, mais quand ça plante il est difficile de trouver pourquoi.
Je te conseille donc d’enlever l’import de VisualBasic dans tous tes projets


Plus d’infos ici
https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
Messages postés
33
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
2 mai 2018
5
oui, enfin, c'est un pissage de code que j'ai fait à l'arrache, oui en effet j'aurait pu mettre un elseif... mais si j'ai une souris à boutons programmables (reconnus comme button 4 et j'en passe) ben ça peut fausser un peu le code...

En ce qui concerne le balisage, c'est mieux que rien mais je prend tout de même note, merci encore.

Au sujet du "msgbox" je sais que c'est un import mais ça fonctionne tout de même. Merci tout de même pour l'info.
Messages postés
14913
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 octobre 2020
596
En ce qui concerne le balisage, c'est mieux que rien
Je ne suis pas de ton avis.
En postant ici, tu t’adresses à des bénévoles.
Certains (dont je fais partie quand je suis de bonne composition) font l’effort de décrypter un texte indigestes de quelques lignes, mais dès que c’est un peu long, zappent la question. D’autres passent directement à une autre question.

Plus ton message est facile à lire, plus tu as de chances que quelqu’un donne de son temps pour essayer d’y répondre.