Menu

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

LexDotNet 34 Messages postés mercredi 20 décembre 2017Date d'inscription 2 mai 2018 Dernière intervention - 11 févr. 2018 à 15:45 - Dernière réponse : Whismeril 11642 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention
- 14 févr. 2018 à 20:56
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 ! :)
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
NHenry 14209 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 23 juin 2018 Dernière intervention - 11 févr. 2018 à 17:00
1
Merci
Regarde MouseDown et MouseUp

Merci NHenry 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 23926 internautes ce mois-ci

LexDotNet 34 Messages postés mercredi 20 décembre 2017Date d'inscription 2 mai 2018 Dernière intervention - 11 févr. 2018 à 17:21
'k, j'irais voir quand je serais de retour sur mon IDE :)
LexDotNet 34 Messages postés mercredi 20 décembre 2017Date d'inscription 2 mai 2018 Dernière intervention - 12 févr. 2018 à 08:46
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
Commenter la réponse de NHenry
LexDotNet 34 Messages postés mercredi 20 décembre 2017Date d'inscription 2 mai 2018 Dernière intervention - 12 févr. 2018 à 09:04
0
Merci
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
Whismeril 11642 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention - 12 févr. 2018 à 09:34
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 http://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
http://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
LexDotNet 34 Messages postés mercredi 20 décembre 2017Date d'inscription 2 mai 2018 Dernière intervention - 14 févr. 2018 à 14:02
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.
Whismeril 11642 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 23 juin 2018 Dernière intervention - 14 févr. 2018 à 20:56
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.
Commenter la réponse de LexDotNet