2013-06-02 62 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和按鍵)僅如果標有

KeyPreview = true; 

MSDN here

真要是形式將接收所有關鍵事件的形式,水平被觸發;如果當前在表單上選中的 控件接收到關鍵事件,則返回false。默認值爲 false。

+0

具體設置好吧,我已經定義了KeyPreview = true;因爲KeyDown工作正常。 – Joscplan

+0

這很有趣,你在KeyDown事件中做什麼? 'e.Handled = true;' – Steve

+0

停止KeyDown事件觸發的聲音,並且改變一個按鈕的圖像,非常簡單,但不起作用。 – Joscplan