本来我的程序可以接收键盘事件,但如果在上面加了个button之后焦点就一直在那个按钮上了,窗体接收不到键盘事件,怎么办呢?请指教。(我不想添加panel之类的控件)

解决方案 »

  1.   

    把form的KeyPreview属性设置为true。
      

  2.   

    重载ProcessDialogKey()方法实现,参考如下代码
    protected override bool ProcessDialogKey(Keys keyData)
    {
        Text = keyData.ToString();
        return base.ProcessDialogKey(keyData);
    }
      

  3.   

    这是由于你的Form上有button,因此按键消息被Button接收了 ,所以只要把form的KeyPreview属性设置为true,就可以接受键盘事件了
      

  4.   


    Form.KeyPreview 属性  
    获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件。
      

  5.   

    我在窗体的Load()方法里的第一句写了 this.KeyPreview=true; 没用。
    重写的方法不懂怎么用,能再具体一点吗?