2009-10-24 6 views
2

J'ai un formulaire avec plusieurs contrôles spéciaux qui est la fenêtre principale de mon application. Je voudrais capturer toutes les touches pendant que mon application est en cours d'exécution, au niveau du formulaire, plutôt que sur le contrôle ciblé ou quelque chose comme ça. Quelle est la manière standard de le faire dans WinForms?Manipulation du clavier au niveau du formulaire

+0

Vérifiez cela: http://stackoverflow.com/questions/400113/best-way-to-implement-keyboard-shortcuts-in-winforms –

Répondre

3

définissez Form.PreviewKeys = true, vous obtenez alors tous les événements de clavier.

+0

Cela fonctionne très bien. Je viens de remplacer l'événement ProcessCmdKey et cela semble fonctionner. – captncraig

+0

Fonctionne tant qu'il n'y a pas d'autre contrôle sous la forme en écoutant la même touche. Par exemple, si vous essayez d'attraper F2 au niveau du formulaire mais que vous définissez également F2 comme raccourci vers un ToolStripMenuItem, aucun des deux ne les obtiendra. –

1

Définissez la propriété KeyPreview du formulaire sur true, puis gérez l'un des événements de touche.

Questions connexes