C# 重写键绑定

C# 重写键绑定,c#,keypress,C#,Keypress,我试图让它无论发生什么,当我推送空格时,都会执行某个代码块(确切地说是cmd_play) 但是,如果您使用Form Keypress执行此操作,它似乎只工作一次: private void frmmain_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == Convert.ToChar(Keys.Space)) cmdPlay_Click(null,

我试图让它无论发生什么,当我推送空格时,都会执行某个代码块(确切地说是cmd_play)

但是,如果您使用Form Keypress执行此操作,它似乎只工作一次:

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

有什么想法吗?

尝试将KeyPressEventArgs的Handled属性设置为true。不确定它是否能解决您的问题,但它是一种良好的形式。更多信息


如果这不起作用,那么肯定会起作用。尽管挂接事件是一项更大、更危险的任务。

您确定cmdPlay\u Click()不是问题所在吗?也就是说,事件处理程序被调用了多次,但cmdPlay_Click()只播放了一次?

似乎仍然不起作用。如果选择了任何控件,它将不会在那里执行。我还尝试将其添加到列表视图中,但它仍然发出嘟嘟声:/
private void frmmain_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == Convert.ToChar(Keys.Space))
            {
                 cmdPlay_Click(null, null);
                 e.Handled = true;
            }
    }