如何为按钮添加快捷键?
我在按钮的Key_Down事件里添加代码,但按钮根本没响应这个事件。
这个按钮用的是QLFUL的第三方库。

解决方案 »

  1.   

    不要在按钮的Key_Down事件里处理快捷键,因为你只有点了按钮,这个按钮才会响应Key_Down事件,Key_Down事件只会发给拥有输入焦点的控件,通常,除非按钮是tab 0,否则它不会在打开时拥有输入焦点,或者你点过这个按钮,它才会有输入焦点,在form上,Key_Down事件只会发送给一个控件,而不是发给form上所有的控件,Key_Down事件只发送给拥有输入焦点的控件,而且在整个windows中,在一个时刻只有一个控件拥有输入焦点,如果你的按钮碰巧拥有输入焦点,那么它是可以相应Key_Down事件,但你的按钮通常不会有输入焦点,除非它是tab 0控件,
      

  2.   

    标准的实现方法是在Form中响应Key_Down事件,然后调用快捷键功能,不过不要忘了把form.keypreview属性设置为true,否则Form也接收不到Key_Down事件,
      

  3.   

    也可以在button的title设置的时候,加上个&后面跟个字幕,这样你就可以用Alt+指定字母这个快捷键来响应,
      

  4.   

    一般来说,可以为按钮添加加速键。方法是设置按钮文本,比如 &Accept,那么显示出来的按钮就是 Accept。用户可以按 Alt + A 操作按钮。
      

  5.   

    在button的Text文本属性后面加上&+字母,这样你就可以用Alt+指定字母这个快捷键来响应,
    如果 提交按钮 Text=提交(&S)
      

  6.   

    代码添加在窗体的keydown事件里,窗体属性KeyPreview设为true
      

  7.   

    这样的设计并不好
    如果有一个字段叫ASP你咋弄?
    应该这样
    Accept(&A)
      

  8.   

    窗体 KeyPreview 属性设置为 True,在窗体的 KeyPress 事件里调用按钮点击事件方法
      

  9.   

    其实你们说的这种方法,我也试过,可是Form不响应Key_Down事件,form.keypreview属性已经设置为true。难道和程序里有两个窗口有关系。
      

  10.   

    我也试过,可是Form不响应Key_Down事件,form.keypreview属性已经设置为true。难道和程序里有两个窗口有关系?
      

  11.   

    我猜,你是要写一个hook 键盘全局勾子吧?
     请参考:http://www.cnblogs.com/MaxWoods/archive/2008/05/22/1205221.html
      

  12.   

    为什么Form没有响应Key_Down事件呢?