试了下,如果窗体上没有控件,那么你设置窗体的keyDown是可以捕捉到的。如果窗体上有控件,那么焦点也好像没法到窗体上。。好像也没有为窗体设置焦点的属性。。

解决方案 »

  1.   


      public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                Load +=new EventHandler(Form1_Load);//添加窗体加载事件
            } 
             private void Form1_Load(object sender, EventArgs e)
            {
                KeyDown += new KeyEventHandler(Form1_KeyDown);//添加按键事件        }       
             private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    e.Handled = true;   //将Handled设置为true,指示已经处理过KeyPress事件   
                    button2_Click(sender, e);
                }        }    
            }
      

  2.   


      public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                Load +=new EventHandler(Form1_Load);//添加窗体加载事件
            } 
             private void Form1_Load(object sender, EventArgs e)
            {
                KeyDown += new KeyEventHandler(Form1_KeyDown);//添加按键事件        }       
             private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    e.Handled = true;   //将Handled设置为true,指示已经处理过KeyPress事件   
                    button2_Click(sender, e);
                }        }    
            }
    非要手动添加么?
      

  3.   

    也可以通过WndProc监听窗体消息来做
      

  4.   

    可以把From的keydown事件,同时放在label或其它控件上
      

  5.   

    因为你的按键动作并不在窗体上,所以监控不到
    你试试label上的事件
      

  6.   

    只有你的焦点在form1上才会获取到
    其次控件貌似还有事件冒泡的
      

  7.   

    在视图设计器中将所有控件的TabStop属性设为false。
    好蠢的方法。呵呵。
      

  8.   

    注意,并不是所有对象都可以接收焦点,某些控件例如框架 (Frame) 、标签 (Label) 、菜单 (Menu) 、直线 (Line) 、形状 (shape) 、图像框 (Image) 和计时器 (Timer) 都不能接收焦点。对于窗体来说,只有当窗体上的任何控件都不能接收焦点时,该窗体才能接收焦点。
      

  9.   


     private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    MessageBox.Show("Test");
                }        }
    我这样写都没有反应
      

  10.   


    但是点击窗体上的某个按钮后,forms又不能接收焦点了
      

  11.   

    来吧,我要帮你结贴了。
    1、先将窗体的KeyPreview属性设置为true;
    2、放置一个透明的label;
    3、为窗体添加Click事件:        private void Form_Click(object sender, EventArgs e)
            {
                label.Focus();
            }
      

  12.   


    可是在我点击按钮后,还是无法接收键盘事件
    这按钮点击事件的末尾加上 label.Focus();
      

  13.   

    窗体属性中有键盘注册事件,改为true