2009-09-07 6 views
1

Mon événement clé Esc ne semble pas être viré.Événement clé Echap ne se déclenche pas dans les winforms

J'ai deux formes.

En cas form1 bouton click

Form2 frm2 = new Form2(); 
frm2.show(); 

En forme 2 J'ai un événement appelé

private void frm2_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Escape) 
     this.Hide(); 

    } 

ce qui est mal à cela?

+0

double possible de [bouton d'échappement pour fermer WinForm en C#] (http://stackoverflow.com/questions/2290959/escape-button -to-close-winform-in-c-sharp) –

Répondre

5

Si l'accent est mis dans un contrôle enfant, vous devez définir

frm2.KeyPreview = true; 

pour gérer des événements clés dans le gestionnaire d'événements de la forme.

ou dans le gestionnaire d'événements de charge ou le constructeur de la forme:

this.KeyPreview = true; 
+0

Salut merci pour votre réponse rapide .. mais puis-je savoir où puis-je mettre cela? dans la forme1 ou la forme2? En fait, je l'ai mis en forme formulaire page événement de chargement comme celui-ci .. form2 frm2 = new form2(); frm2.keypreview = true; mais toujours le même résultat – Nagu

+0

@Nagu: Si vous faites cela dans le gestionnaire d'événement load, vous créez une * nouvelle * instance du formulaire avec KeyPreview == true. Ce n'est pas ce que tu veux faire. Mettez "this.KeyPreview = true;" dans le gestionnaire de charge ou le constructeur du formulaire. – Rytmis

+0

hey il woke bien mais la chose est quand je mets le débogueur alors seulement il fonctionne autrement il ne fonctionne pas .. quelle est la logique dans ceci? – Nagu

Questions connexes