10
votes

Comment obtenir l'événement KeyPress dans le contrôle du panneau Windows dans C #

Je veux obtenir un événement KeyPress dans le contrôle du panneau Windows dans C #, est une aide corporelle pour moi ...


3 commentaires

Cliquez sur le panneau. 2ème onglet des propriétés (du panneau) Montrez des événements qu'il peut tirer. Double-cliquez sur KeyPresseEvent et Voila


@PowerRoy, qui ne fonctionnera pas, le panneau n'expose pas la méthode KeyPressEvent. Il n'expose que l'événement de l'aperçu.


AperviewKeyky fonctionne bien si vous définissez la mise au point sur le panneau dans son événement MouseDown.


4 Réponses :



9
votes

Le problème est que, au début, votre formule principale a obtenu la clé de clé et l'envoyer immédiatement à ce message au contrôle actif. Si cela ne gère pas cette touche, appuyez sur la commande parent et ainsi de suite.

Pour intercepter cette chaîne, vous devez avoir dans votre form.keypreview à true et ajoutez un gestionnaire à form.KeyPress . Maintenant, vous pouvez gérer la clé pressée dans votre formulaire.


0 commentaires

3
votes

Les objets "panneau" ne peuvent pas recevoir correctement l'événement "KeyPress".

J'ai créé panneau surcharge: xxx

et utilisé La méthode remplacée processcmdkey : xxx

pour intercepter les touches pressées: xxx


0 commentaires