在窗体上,按向左、向右等方向键,光标会在窗体上的控件跳转,想屏蔽这个功能。哪位大侠能帮忙指导下

解决方案 »

  1.   

    就控件的 TabStop 属性设置为 False
      

  2.   

    楼上说的都不行的,只对Tab键有效,对方向键无效的
      

  3.   

    就控件的 TabStop 属性设置为 False
    说得太对了,我也学习了,很常用的一个效果
      

  4.   

    真的不行,就在窗体的接收KeyDown中,来屏蔽方向建
      

  5.   

     TabStop 
    属性设置为 False 
    同意
      

  6.   

    通常来说,要对某个控件进行按键屏蔽,可以处理KeyPress事件,将KeyEventArgs.Handled属性设为true;或是重载PreProcessMessage函数。 若要是屏蔽Dialog字符的话,可以重载Control.ProcessDialogKey函数。 若要对整个程序进行按键屏蔽,可以创建程序级的Hook,或是对所有的控件都加上一个KeyPress事件处理函数。
      

  7.   

    如果我没理解错的话,LZ说的控件光标指的是Focus吗?
    如果是Focus,那么就能用Button来测试了
    弄两个Button在Form里,就能看到方向键使得Focus在两个Button上切换,无论设置TabStop为False还是在窗体中接收KeyDown,都不能屏蔽
      

  8.   

    我这是样写的
            public override bool PreProcessMessage(ref Message msg)
            {
                if(msg.Msg == 0x100) //避免移动方向键时跳出控件
                {
                    if(msg.WParam != new IntPtr(9)) //Tab键排除
                        return false;
                }
                return base.PreProcessMessage(ref msg);
            }
      

  9.   

    我测试过了,在按钮的keydown和keyup事件或keypress事件中写代码是不能屏蔽上下左右按键的。其他的按键是可以的,那么这样的话,就只能用hook技术来屏蔽了。