我用ProcessCmdKey 捕获键盘的F1按键的事件,当正常情况下是没有问题的,可是我的流程是需要在一个按钮的CLICK之后才能按F1的,CLICK里写了一个给控件设置焦点的东西,这时问题就来了,再按F1的时候回走2次ProcessCmdKey 事件,可是焦点还是必须要在那里设置的,哪位高手能帮帮忙。

解决方案 »

  1.   

    比如:     protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
                const int WM_KEYDOWN = 0x100;
                const int WM_SYSKEYDOWN = 0x104;
                if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
                {
                    switch (keyData)
                    {
                        case Keys.F1:
                       {
                          messagebox.show("F1被捕捉");
                       }
                    }
                 }
            }当PAGE——LOAD之后是没有问题的,可是当一个按钮的CLICK之后,CLICK里有一个this.空间名.fouce();  就不能用了,他回反复进到ProcessCmdKey中两次,弹出两次对话框。
      

  2.   

    messagebox.show("F1被捕捉"); break;  ??
      

  3.   

    messagebox.show("F1被捕捉"); break; 
    那是一定的了,刚才忘记写了,断点我也试了,现在的现象就是会反复的进入ProcessCmdKey中两次,弹出两次  “F1被捕捉”