winform中的keydown   为什么有时候有用有时候没用?

解决方案 »

  1.   

    Form有一个keypreview属性,只有在该属性为true时,键事件在传递到具有焦点的控件前,窗体才会接收此键事件,否则将传给具有焦点的控件
      

  2.   

    KeyDown:在控件有焦点的情况下按下键时发生。
    KeyDown 可以捕获组合键。
    KeyDown对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。
    若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs...Handled 属性设置为 true。某些键,如 Tab、Return、Esc 和箭头键,由控件自动处理。为使这些键引发 KeyDown 事件,必须在窗体上的每个控件中重写 IsInputKey 方法。用于重写 IsInputKey 的代码需要确定是否按下了某个特殊键,并且需要返回一个 true 值。