2015-04-29 2 views
1

J'ai une application avec une fenêtre parente et le potentiel pour que plusieurs fenêtres non modales en soient extraites.Le raccourci de la fenêtre parent vole l'entrée de l'enfant non modéré

Dans l'une de ces fenêtres non modales, il y a une zone de texte.

Lorsque vous tapez dans la zone de texte, je veux être en mesure d'appuyer sur CTRL + A pour sélectionner tout le texte.

Cependant, ma fenêtre parente a un élément de menu qui spécifie CTRL + A comme raccourci (il fait son propre select-tout genre de choses).

Dans l'événement KeyDown de ma zone de texte/contrôle/formulaire, vous ne voyez jamais apparaître CTRL + A. En bref, il est volé par la fenêtre parent. Je veux le remplacer pour faire quelque chose de différent dans la fenêtre non modale. Sinon, je veux passer outre pour ne rien faire du tout. Si possible, comment puis-je faire cela?

+3

Est-ce une application WinForms? –

+0

J'ai modifié votre titre. S'il vous plaît voir, "[Les questions devraient inclure" tags "dans leurs titres?] (Http://meta.stackexchange.com/questions/19190/)", où le consensus est "non, ils ne devraient pas". –

+0

pourquoi ne pas modifier le code/fonctionnalité pour rendre les formulaires popup comme modal .. y at-il une raison de ne pas le faire .. Sinon, vous pourriez créer des gestionnaires d'événements délégué .. juste une pensée .. – MethodMan

Répondre

0

Option 1 (rapide & sale): Dans WinForm ou WPF, créez un EventListener pour le clavier. Dans le code-behind

private void textBox1_keyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Control & e.KeyCode == Keys.A) 
    { 
     textBox1.SelectAll(); 
    } 
} 

Option 2: Hériter une zone de texte et passer outre OnPreviewKeyDown