Je veux obtenir un événement KeyPress dans le contrôle du panneau Windows dans C #, est une aide corporelle pour moi ... P>
4 Réponses :
Vous devez gérer le panneau.KeyPress < / a> événement. exemple b> p>
Bonjour merci en réalité, je ne reçois pas la clé KeyPress EventHandler pour mon contrôle de panneau pouvez-vous me dire comment ça va ..
Essayez simplement l'exemple que James a écrit. (MyPanel comme contrôle) .KeyPres sera là, si vous écrivez exactement (MyPanel comme contrôle) où MyPanel est votre contrôle de panneau Windows.
Je sais que cela est un peu tardif dans le jeu, mais le contrôle du panneau ne recevra pas d'événements liés aux essences sans se concentrer et de cliquer sur le panneau ne le donnera pas naturellement de mise au point. Vous pouvez contourner cela en appelant myPanel.focus () dans un gestionnaire d'événements de MouseDown pour le panneau. Une fois que le panneau a mis l'accent, les événements Keyup, Keydown et KeyPress fonctionneront, même sans KeyPreview activé sur la forme parent.
@ user1689175 Il s'agit d'une réponse assez ancienne et, en fait, si vous inspectez les docs maintenant, ils indiquent que l'utilisation de panneau.KeyPress code> n'est pas recommandée. Cependant, vous devez examiner la question posée, il n'y a pas de contexte c'est une question droite qui a reçu une réponse directe.
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. P>
Pour intercepter cette chaîne, vous devez avoir dans votre form.keypreview code> à
true code> et ajoutez un gestionnaire à
form.KeyPress code>. Maintenant, vous pouvez gérer la clé pressée dans votre formulaire. P>
Les objets "panneau" ne peuvent pas recevoir correctement l'événement "KeyPress".
J'ai créé et utilisé La méthode remplacée pour intercepter les touches pressées: p> panneau code> surcharge: p>
processcmdkey code>: p>
Panneau + KeyPress - C # Boards de discussion - CodeProject P>
http://www.codeproject.com/messages/704386/ Panneau plus-keypress.aspx p>
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.