aurelie2003
Messages postés16Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 8 juillet 2009
-
7 mars 2007 à 17:25
aurelie2003
Messages postés16Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 8 juillet 2009
-
9 mars 2007 à 04:48
Bonjour,
Je souhaite ajouter un raccourci clavier pour un MenuItem dans un mainMenu. Le problème est que ce raccourci clavier ne fait pas partie de ceux proposés par Visual Studio .Net. Je voudrais le raccourci: CtrlD2. Comment puis-je faire?
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 8 mars 2007 à 11:34
Bonjour Aurelie,
Je pense qu'il te faudra gérer avec les événements de ta Form elle même !
inspire-toi de ceci, que je viens de te faire, mais en VB6
Private touche1 As Boolean, touche2 As Boolean, touche3 As Boolean
Private Sub Form_Activate()
Me.KeyPreview = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
controle_touche "CTRL", "D", "2", KeyCode
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
touche1 = False
touche2 = False
touche3 = False
End Sub
Private Sub controle_touche(T1, T2, T3, KC)
If touche1 And touche2 And touche3 Then
touche1 = False
touche2 = False
touche3 = False
End If If T1 "CTRL" Then T1 "17" If KC Val(T1) Then touche1 True If UCase(Chr(KC)) T2 Then touche2 True If UCase(Chr(KC)) T3 Or KC 98 Then touche3 = True
If touche1 And touche2 And touche3 Then If T1 "17" Then T1 "CTRL"
MsgBox T1 & " " & T2 & " " & T3 & " sont présentement enfoncés simultanément"
End If
End Sub
aurelie2003
Messages postés16Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 8 juillet 2009 9 mars 2007 à 04:48
Voici ce que j'ai fait en VB.Net en m'inspirant donc du code précédent:
'Déclaration des variables de formulaire
Private
mblnTouche1, mblnTouche2, mblnTouche3
As
Boolean'Mettre dans les parties du code:
Me
.KeyPreview =
True 'si on veut que le raccourci clavier soit pris en compte.
Me
.KeyPreview = False 'pour ne pas prendre en compte le raccourci clavier.
Private
Sub Form_KeyDown(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.KeyEventArgs)
Handles
MyBase.KeyDown
If e.KeyCode = Keys.ControlKey
ThenmblnTouche1 =
True
End
If
If e.KeyCode = Keys.D
AndAlso mblnTouche1
ThenmblnTouche2 =
True
End
If
If e.KeyCode = Keys.D2
AndAlso mblnTouche1
AndAlso mblnTouche2
ThenmblnTouche3 =
True
End
If
If mblnTouche1
AndAlso mblnTouche2
AndAlso mblnTouche3
ThenResultatButton.PerformClick() 'Bouton pour lequel le raccourci clavier est réalisé
'On remet les variables de formulaire à false
mblnTouche1 FalsemblnTouche2
FalsemblnTouche3 =
False
End
If
End
Sub
Private
Sub Form_KeyUp(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.KeyEventArgs)
Handles
MyBase.KeyUp
' Au cas où on a seulement appuyé sur les touches CTRL avec et/ou D et qu'on omet la touche "2" (supposons qu'on ne veuille plus de ce raccourci clavier à la dernière minute). Peut éviter des surprises si plus tard on appuie sur "2" ...
If e.KeyCode = Keys.ControlKey ThenmblnTouche1 FalsemblnTouche2