9
votes

Désactivation de la clé F10 de la mise au point de la mise au point sur la barre de menus dans le programme Winforms C #

Lorsque j'appuie sur F10 dans mon programme, la mise au point est perdue dans ma fenêtre principale du programme et se déplace dans la barre de menus. Il s'avère que cet étrange comportement est commun sur de nombreuses applications Windows.

Je pense que c'est moche parce que la touche Alt fait la même chose et nous perdons une clé de fonction précieuse. Pourquoi Windows fait-il cela et comment puis-je résoudre le cas pour mon application C #?


2 commentaires

FYI, ce comportement pour le raccourci F10 existe depuis au moins Windows XP: support.microsoft.com/kb / 301583


Faites attention à la modification du comportement «laid» que vos utilisateurs s'attendent à vous attendre.


3 Réponses :


12
votes

Utilisez l'événement de clé pour votre formulaire et gérez la touche de frappe:

private void form_KeyDown(object sender, KeyEventArgs e)
{ if(e.KeyData == Keys.F10)
    {
        // Do what you want with the F10 key
        e.SuppressKeyPress = true;
    }
}


2 commentaires

@ Goibe, en réalité, Dan (l'OP) a fait les corrections. Comme il n'a pas de privilèges d'édition, je viens d'aider ses changements à bâtir.


Aucun problème - je suis juste reconnaissant pour la réponse! :)



0
votes

1 commentaires

Cette approche est pour un cas plus compliqué dans lequel vous souhaitez remplacer les raccourcis clavier "système", par exemple. Touche Windows + D.



-1
votes

J'ai utilisé ci-dessous Trick: xxx

Ce code soulage le formulaire de la touche F10.


0 commentaires