C#中如何设置快捷键?比如:
private void button2_Click(object sender, System.EventArgs e)
{
this.Hide();
}
我想设置为 Esc 为button2 的快捷键。
谢谢!

解决方案 »

  1.   

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    if(keyData==(Keys.Escape))
      {
                                    //do something here
                                    return base.ProcessCmdKey (ref msg, keyData);
                                  }
    }
      

  2.   

    写错了,不好意思
    其实就是捕获一下窗体接收到的键盘消息,然后在做你想要的事
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    if(keyData==(Keys.Escape))
    {
               this.Hide();
    }
    return base.ProcessCmdKey (ref msg, keyData);
    }
      

  3.   

    如果你只是想
    用户按ESC键,
    就执行button2_Click你可以设置
    窗体的
    CancelButton属性设置为button2
      

  4.   

    谢谢,楼上的。你说的这个办法很简单。但是我还是想多知道点,我是这样的:
    private void button2_keydown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if(keyData==(Keys.Escape))
    {
    this.Hide();
    //return base.ProcessCmdKey (ref msg, keyData);
    }
    }
    还是有问题。keyData 的命名空间?这样可以么?