覆盖键绑定
问题描述:
我试图做到这一点,无论如何,当我推空间时,执行某个代码块(确切地说,是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一定会的。虽然勾当事件是一个更大和更危险的事业。
答
您确定cmdPlay_Click()不是问题吗? I.E.事件处理程序IS被多次调用,但cmdPlay_Click()只能播放一次?
仍似乎没有工作。如果选择了任何控件,它将不会在那里执行。我也尝试将它添加到列表视图,它仍然只是发出哔声:/ – Mike 2009-11-04 23:45:40
试试这个:http://www.codeproject.com/KB/system/globalmousekeyboardlib.aspx – 2009-11-05 00:25:50