J'ai un petit soucis avec l'évènement KeyPressed d'une form.
A ma première entrée dans cette forme, sur la touche Entrée, l'évènement se déclenche correctement. Je sors de cette forme "en la cachant sans la dispose", quand je re-rentre dans ma forme, l'évènement fonctionne toujours sur toutes mes touches exceptée sur la touche qui m'intéresse c'est à dire la touche Entrée.
Y a t-il une raison particulière pour que l'évènement ne fonctionne plus avec la touche Entrée ?
la touche entrée a une signification particulière et est interprêtée priorotairement par certains contrôles (un bouton de commande, entre autres...)
Si donc ton focus est sur l'un de CES contrôles, ta Form n'interprête pas la touche ENTER
"Est ce que cela veut dire qu'aucun contrôle n'a le focus au démarrage ?"
ou simplement parce que le contrôle ayant le focus à ce moment là n'est pas de ceux qui interceptent prioritairement la touche ENTER
ce sera par exemple le cas avec une picturebox
D'accord je comprends, je vais faire autrement et utiliser le focus.
Par contre, je n'arrive pas à comprendre, pourquoi cela fonctionne lors de ma première venue sur la form? Est ce que cela veut dire qu'aucun contrôle n'a le focus au démarrage ?
Sinon il me semble également qu'il y a une propriété de la form (KeyPreview si je me rappelle bien) qui permet d'intercepter les évènements KeyPress des controles de la form
Même en mettant Keypreview à true dans ma form, l'évènement n'est intercepté sur la touche Entrée qu'à la première visiblité de mon Usercontrol. Lorsque j'affiche un autre Usercontrol puis que je reviens sur le Usercontrol qui m'intéresse, la touche Entrée n'est plus interceptée (les autres oui)...et ce malgré le Keypreview à true et aucun focus n'est forcé....
Du coup, je n'arrive pas à utiliser l'évènement KeyDown pour la touche Entrée, je suis obligé d'utiliser le focus et ce n'est pas le plus pratique pour moi.
Si quelqu'un a mieux ou comprends mon la cause de mon soucis, je suis preneur.
'Fonction pour detecter la touche du clavier
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean