2013-06-02 6 views
4

Hey je ce morceau de code:C# Window_KeyUp() ne fonctionne pas

private void Window_KeyUp(object sender, KeyEventArgs e) 
{ 
    if (playing == false) 
    { 
     return; 
    } 
    if (e.KeyCode == Keys.D1) 
    { 
     pictureBox6.Image = Form.Properties.Resources.black_square_button; 
     player.Stop(); 
     player.Close(); 
     playing = false; 
    } 
} 

I'ts ne fonctionne pas, mais le Window_KeyDown() fonctionne.

Quel est le problème avec mon code?

Merci.

+0

Qu'est-ce qui ne fonctionne pas? L'événement est-il renvoyé? Êtes-vous sûr que le handler est correctement câblé au formulaire et/ou au contrôleur? –

+0

Les événements ne sont pas déclenchés après la libération de la clé. – Joscplan

+0

Avez-vous la configuration d'événement pour un contrôleur spécifique ou le formulaire? Je crois que la méthode keyUp est appelée si le contrôleur cible est en focus. –

Répondre

13

L'événement KeyUp (également KeyDown et KeyPress) sont déclenchées au niveau de la forme que si la forme a

KeyPreview = true; 

MSDN here

true si le formulaire recevra tous les événements clés; false si le contrôle actuellement sélectionné sur le formulaire reçoit des événements clés. La valeur par défaut est false.

+0

Eh bien, j'ai déjà défini KeyPreview = true; comme KeyDown fonctionne bien. – Joscplan

+0

Eh bien c'est intéressant, que faites-vous dans l'événement KeyDown? 'e.Handled = true;' – Steve

+0

arrêter le son déclenché par l'événement KeyDown et aussi changer l'image d'un bouton, assez simple mais ne fonctionnera pas. – Joscplan