覆盖键绑定

时间:2009-10-24 01:49:55

标签: c# keypress

我试图这样做无论如何,当我推送Space时,会执行某段代码(cmd_play,确切地说)。

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

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

任何想法?

2 个答案:

答案 0 :(得分: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肯定会。虽然挂钩活动是一项更大更危险的事业。

答案 1 :(得分:0)

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