覆盖键绑定

问题描述:

我试图做到这一点,无论如何,当我推空间时,执行某个代码块(确切地说,是cmd_play)。覆盖键绑定

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

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

什么想法?

尝试将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

您确定cmdPlay_Click()不是问题吗? I.E.事件处理程序IS被多次调用,但cmdPlay_Click()只能播放一次?