2009-10-24 135 views
0

我試圖做到這一點,無論如何,當我推空間時,執行某個代碼塊(確切地說,是cmd_play)。覆蓋鍵綁定

然而,似乎只有使用表格按鍵時,如果你做的工作,一旦它:

private void frmmain_KeyPress(object sender, KeyPressEventArgs e) 
     { 
      if (e.KeyChar == Convert.ToChar(Keys.Space)) 
       cmdPlay_Click(null, null); 
     } 

什麼想法?

回答

0

嘗試將KeyPressEventArgs的Handled屬性設置爲true。不知道它是否會解決您的問題,但它是一種很好的形式。更多信息here

private void frmmain_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar == Convert.ToChar(Keys.Space)) 
      { 
       cmdPlay_Click(null, null); 
       e.Handled = true; 
      } 
    } 

如果不工作,然後keyboard event hooks一定會的。雖然勾當事件是一個更大和更危險的事業。

+0

仍似乎沒有工作。如果選擇了任何控件,它將不會在那裏執行。我也嘗試將它添加到列表視圖,它仍然只是發出嗶聲:/ – Mike 2009-11-04 23:45:40

+0

試試這個:http://www.codeproject.com/KB/system/globalmousekeyboardlib.aspx – 2009-11-05 00:25:50

0

您確定cmdPlay_Click()不是問題嗎? I.E.事件處理程序IS被多次調用,但cmdPlay_Click()只能播放一次?