2013-06-02 1 views
4

Эй у меня есть этот кусок кода:C# Window_KeyUp() не работает

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 не работает, но Window_KeyDown() работает.

Что не так с моим кодом?

Спасибо.

+0

Какая часть не работает? Является ли мероприятие уволенным? Вы уверены, что обработчик правильно подключен к форме и/или контроллеру? –

+0

События не запускаются после отпускания ключа. – Joscplan

+0

У вас есть настройка события для конкретного контроллера или формы? Я считаю, что метод keyUp вызывается, если целевой контроллер находится в фокусе. –

ответ

13

Событие KeyUp (также KeyDown и KeyPress) срабатывают на уровне формы, только если форма имеет

KeyPreview = true; 

MSDN here

верно, если форма получит все ключевые события; false, если выбранный элемент в форме получает ключевые события. По умолчанию false.

+0

Ну, я уже определил KeyPreview = true; поскольку KeyDown работает отлично. – Joscplan

+0

Хорошо, что интересно, что вы делаете в событии KeyDown? 'e.Handled = true;' – Steve

+0

остановить звук, вызванный событием KeyDown, а также изменить изображение кнопки, довольно просто, но не будет работать. – Joscplan