Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Intercepté une touche clavier

5 réponses
Avatar
batteoui
Bonjour;

je me demande comment je peux intercet=E9 une touche de clavier dans une
fenetre plein des bouton et des textbox. enffet je souhaite
intercepter la touche F1 pr que je puisse afficher l'aide de la
fenetre en cour.

Merci de votre aide

5 réponses

Avatar
Jacques93
a écrit :
Bonjour;

je me demande comment je peux interceté une touche de clavier dans une
fenetre plein des bouton et des textbox. enffet je souhaite
intercepter la touche F1 pr que je puisse afficher l'aide de la
fenetre en cour.




Ceci, peut être :

Private Sub Form_Load()
Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
MsgBox "Aide"
KeyCode = 0
End If
End Sub



--
Cordialement,

Jacques.
Avatar
batteoui
> Ceci, peut être :

Private Sub Form_Load()
Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
MsgBox "Aide"
KeyCode = 0
End If
End Sub

--
Cordialement,

Jacques.




Merci Jacques,

le code fonctionne parfaitement, souf dans le cas ou le controle
ComboBox prend le focus.

Cordialement.
Avatar
Gloops
Jacques93 a écrit, le 14/12/2007 19:35 :
a écrit :
intercepter la touche F1 pr que je puisse afficher l'aide de la


Ceci, peut être :

Private Sub Form_Load()
Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)




Salut Jacques,

Bon, d'accord, mais t'arrêtes-tu là délibérément ?

Si le principal moyen d'implémenter une aide est de passer par
Form_KeyDown, alors à quoi servent la propriété HelpContextId du
formulaire comme de chaque contrôle y compris Combobox, et la proprié té
HelpFile de l'application ? Sans parler de WhatsThisHelpId.

Admettons que dans certains cas particuliers on veut ouvrir une
application qui n'est pas faite pour ça mais qui va apporter les
renseignements voulus à l'utilisateur, OK, ça peut marcher, mais pass er
sous silence que VB a tout ce qu'il faut pour remplir cet office,
honnêtement, je ne vois pas pourquoi.

Form_KeyDown, c'est pour quand on n'y arrive pas autrement.
Avatar
Jacques93
Bonjour ,
a écrit :
Ceci, peut être :

Private Sub Form_Load()
Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
MsgBox "Aide"
KeyCode = 0
End If
End Sub

--
Cordialement,

Jacques.




Merci Jacques,

le code fonctionne parfaitement, souf dans le cas ou le controle
ComboBox prend le focus.




Peux tu donner des détails, je n'ai pas ce comportement.
Que ce soit un PictureBox, TextBox, CommandButton, CheckBox,
OptionButton, Combobox, ListBox, etc ...ça fonctionne.

NB : il faut mettre ce code dans chaque feuille.

--
Cordialement,

Jacques.
Avatar
Jacques93
Bonjour Gloops,
Gloops a écrit :
Jacques93 a écrit, le 14/12/2007 19:35 :
a écrit :
intercepter la touche F1 pr que je puisse afficher l'aide de la


Ceci, peut être :

Private Sub Form_Load()
Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)




Salut Jacques,

Bon, d'accord, mais t'arrêtes-tu là délibérément ?

Si le principal moyen d'implémenter une aide est de passer par
Form_KeyDown, alors à quoi servent la propriété HelpContextId du
formulaire comme de chaque contrôle y compris Combobox, et la propriété
HelpFile de l'application ? Sans parler de WhatsThisHelpId.

Admettons que dans certains cas particuliers on veut ouvrir une
application qui n'est pas faite pour ça mais qui va apporter les
renseignements voulus à l'utilisateur, OK, ça peut marcher, mais passer
sous silence que VB a tout ce qu'il faut pour remplir cet office,
honnêtement, je ne vois pas pourquoi.

Form_KeyDown, c'est pour quand on n'y arrive pas autrement.



C'est vrai que j'ai répondu sans penser au système d'aide intégré à VB.
Et pour cause, je ne m'en sers plus depuis des années, les .hlp ayant
été remplacé par les .chm. Et si on peut toujours lire les .hlp sous XP,
ce n'est plus le cas pour Vista de base, cela nécessite une installation
additionnelle (Winhlp32.exe ne ne répondant plus aux normes de Microsoft) :

<http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyIDnbcfad9-d3f5-4365-8070-334cd175d4bb>

--
Cordialement,

Jacques.