窗口上一旦有了按钮,,        
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            int key = e.KeyValue;
            MessageBox.Show(key.ToString());
            switch (key)
            {
                case 65: MessageBox.Show(""); break;//上方向                default: break;
            }键盘触发事件 就感觉很烦人,刚开始 根本就不触发了然后我把按钮弄的没焦点,按了按钮后又不行了然后我在按钮中设 form1.focus()还是不行希望有一种好的解决方法 : 窗口上有按钮,但是不妨碍键盘触发事件

解决方案 »

  1.   

    只要 KeyPreview = true;就會觸發
    不知道你什麽意思?
      

  2.   

    在form1里面加这一句this.KeyPreview = true;
      

  3.   

    From上有个属性,默认为false,设置为true则接收全局(所有属于Form)的键盘事件,这个属性用得少,一时没记住属性名,自己去查一下吧
      

  4.   

    AcceptButton 
    private void Form1_Load(object sender, EventArgs e)
            {
                this.KeyPreview = true;
            }
    private void Form1_KeyDown(object sender, KeyEventArgs e)
      {
      switch (e.KeyCode)
      {
      case Keys.Up: { break; }
      case Keys.Down: { break; }
      // ....
      }
      }
    protected virtual bool ProcessDialogKey(Keys keyData)  
      

  5.   

    重写 Form   类的Pre Message 方法在里面处理所有 KeyDown 事件