在winform中添了6个单选按钮radiobutton,第一行3个按钮,第二行3个按钮。
程序运行时,为什么方向键的上下和左右键选择,效果是一样的,都是焦点依次的从左到右移动,移动到第一行的最后一个,才会移动到第二行。
为什么不能在第一行的时候,按下键直接跳到第二行呢??我试过了在onkeydown中进行方向键控制,这样也无效无法干扰它的移动。
rbtn_PreviewKeyDown这个函数进行方向键控制,也不行。
keydown也试了也不行。请高手指教如何能够改写上下方向键,让radiobutton可以上下行移动?????
radiobuttonwinform

解决方案 »

  1.   

    可以,你自己再keypress事件中控制
      

  2.   


    keypress也是不行的,无法响应方向键的。
    拦截不了单选按钮的处理。
      

  3.   

    在继承类里可以相应:
    internal class MyRadioButton : RadioButton
    {
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    if (keyData == Keys.Up || keyData == Keys.Down || keyData == Keys.Left || keyData == Keys.Right)
    return true;
     
    return base.ProcessCmdKey(ref msg, keyData);
    }
    }
    用委托或者event告诉外面吧。