VB.NET - Clic droit sur un bouton ?

Résolu/Fermé
LexDotNet Messages postés 33 Date d'inscription mercredi 20 décembre 2017 Statut Membre Dernière intervention 2 mai 2018 - Modifié le 11 févr. 2018 à 15:47
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 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 ! :)

2 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
11 févr. 2018 à 17:00
Regarde MouseDown et MouseUp
1
LexDotNet Messages postés 33 Date d'inscription mercredi 20 décembre 2017 Statut Membre Dernière intervention 2 mai 2018 7
11 févr. 2018 à 17:21
'k, j'irais voir quand je serais de retour sur mon IDE :)
0
LexDotNet Messages postés 33 Date d'inscription mercredi 20 décembre 2017 Statut Membre Dernière intervention 2 mai 2018 7
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
0
LexDotNet Messages postés 33 Date d'inscription mercredi 20 décembre 2017 Statut Membre Dernière intervention 2 mai 2018 7
12 févr. 2018 à 09:04
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
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
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 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
0
LexDotNet Messages postés 33 Date d'inscription mercredi 20 décembre 2017 Statut Membre Dernière intervention 2 mai 2018 7
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.
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
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.
0