OVH Cloud OVH Cloud

Ordre des raccourcis claviers

2 réponses
Avatar
Jérôme VERITE
Bonjour,

j'ai des petits soucis avec mes raccourcis claviers. Parfois, ce sont ceux
des menus de la fenêtre qui sont utilisés (pour Del), parfois ceux des menus
contextuels (pour F2, Ctrl+X,...), alors même que ces menus contextuels ne
sont pas à ce moment visibles, et parfois les touches appuyées sont
considérées en premier dans le keydown de mon contrôle.

Pour résumer je ne contrôle pas du tout qui va prendre la main en premier et
ca m'ennuie, y a t'il alors un moyen de le contrôler?

Merci d'avance.

Jérôme

2 réponses

Avatar
Christophe QUEVAL
Bonjour,

Peut-être que la propriété KeyPreview à TRUE de votre feuille
résoudrait-elle vos problèmes... ?

Christophe

"Jérôme VERITE" <veritejeromeAROBASEwanadooPOINTfr> a écrit dans le message
de news:
Bonjour,

j'ai des petits soucis avec mes raccourcis claviers. Parfois, ce sont ceux
des menus de la fenêtre qui sont utilisés (pour Del), parfois ceux des


menus
contextuels (pour F2, Ctrl+X,...), alors même que ces menus contextuels ne
sont pas à ce moment visibles, et parfois les touches appuyées sont
considérées en premier dans le keydown de mon contrôle.

Pour résumer je ne contrôle pas du tout qui va prendre la main en premier


et
ca m'ennuie, y a t'il alors un moyen de le contrôler?

Merci d'avance.

Jérôme




Avatar
ng
Bonjour,

Normarlement une même touche procède à la même action, pour la touche Del
par exemple, qu'elle soit interceptée par le menu pour par le keydown, ca
importe peu dans la mesure où il faut que les 2 procédures (menu & keydown)
appelle une autre procédure commune faisant ainsi la même chose :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDelete Then
Call Efface
End If
End Sub

Private Sub MonMenu_Click(Index As Integer)
'disons que c'est le menu à l'index trois
'qui 'efface'
If Index = 3 Then Call Efface
End Sub

Public Sub Efface()
'code
MsgBox "OK"
End Sub

Si la provenance est vraiment importante :

Private Enum eVientDe
vdFormKeyDown = 0
vbMenuItem = 1
vbAutre = 2
End Enum
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDelete Then
Call Efface(vdFormKeyDown)
End If
End Sub

Private Sub MonMenu_Click(Index As Integer)
'disons que c'est le menu à l'index trois
'qui 'efface'
If Index = 3 Then Call Efface(vbMenuItem)
End Sub

Public Sub Efface(Provenance As eVientDe)
'code
MsgBox "OK Vient de " & Provenance
End Sub


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


"Jérôme VERITE" <veritejeromeAROBASEwanadooPOINTfr> a écrit dans le message
de news:
Bonjour,

j'ai des petits soucis avec mes raccourcis claviers. Parfois, ce sont ceux
des menus de la fenêtre qui sont utilisés (pour Del), parfois ceux des


menus
contextuels (pour F2, Ctrl+X,...), alors même que ces menus contextuels ne
sont pas à ce moment visibles, et parfois les touches appuyées sont
considérées en premier dans le keydown de mon contrôle.

Pour résumer je ne contrôle pas du tout qui va prendre la main en premier


et
ca m'ennuie, y a t'il alors un moyen de le contrôler?

Merci d'avance.

Jérôme