2010-08-25 4 views
2

Il s'agit probablement d'une question simple, mais j'ai été incapable de trouver une réponse rapide.WPF Windows crée des événements de clavier hôte

J'ai une application WPF qui a un Windows Forms Contrôle l'hébergement d'un composant GeckoFX (ne compte pas vraiment). Ce que je veux faire est de capturer des événements de baisse de clef dans le contrôle de Windows Forms et saisir le foyer d'un contrôle de WPF pour une combinaison de clef particulière. Et si je veux capturer des événements de toute la fenêtre de l'application WPF (même à l'intérieur du Windows Forms Control)? J'ai essayé de gérer l'événement KeyDown et l'événement PreviewKeyDown mais en vain.

Ce que je veux savoir, c'est si c'est possible et comment cela devrait être fait. Je peux poster du code si nécessaire. KeyDown même sur le formulaire devrait fonctionner pour les clés non spéciales (comme les touches fléchées).

Répondre

1

Utilisez PreviewKeyDown pour capturer ceux-ci, ou utilisez this solution.

Pour GeckoWebBrowser spécifiquement, j'ai dû utiliser PreviewKeyDown. En outre, j'ai ajouté une ligne afin qu'il ne casse pas en mode de conception:

private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { 
    if (DesignMode) return; 
    if (!e.IsInputKey && e.Control && e.KeyCode == Keys.S) { 
    DoStuff(); 
    return; 
    } 
} 
Questions connexes