9
votes

Ajouter une touche de raccourci F5 en C #

Je fais une application Windows (WinForms) et je voudrais que mon application appelle une méthode lorsque l'utilisateur appuie sur F5 - cela devrait fonctionner, quel que soit l'utilisateur, mais ils doivent utiliser le programme - je ne sais pas Voulez-vous utiliser des crochets globaux - des idées?


0 commentaires

3 Réponses :


3
votes

Si vous n'avez qu'une seule forme qui peut avoir la mise au point, vous pouvez définir le keyPreview propriété de ce formulaire à true et gérer le keypress événement.

Le KeyPreview La propriété provoquera la réception de toutes les appuie sur la touche, quelle que soit la commande sur le formulaire a la mise au point d'entrée.


1 commentaires

+1 pour souligner que cela ne fonctionnera que pour chaque formulaire que vous définissez cette propriété et non de l'application globale



4
votes

Consultez la propriété form.KeyPreview , il vous permettra de piéger toutes les touches , Keyup et keypress Événements au niveau du formulaire avant de leur permettre d'être traités par des éléments individuels.

MSDN Form.KeyPreview Page


1 commentaires

Cela ne fonctionne que dans le cas des applications triviales qui constituent une forme unique et l'une des formes des enfants a toujours lieu. Cela ressemble plus à un piratage qui fonctionne la plupart du temps qu'une solution.



18
votes

remplacer le formulaire processcmdkey sur votre forme principale et recherchez F5. xxx


1 commentaires

Vous voudrez peut-être ajouter un boîtier par défaut dans l'interrupteur de sorte que la classe de base examine la clé au lieu de simplement retourner false: `défaut: retour de la base.Processcmdkey (ref. Msg, keydata) ; `