如题,在listbox中按左右方向键时,所选项会上下移动。例如当前选择第2项,按左键时,会选到第1项;按右键时,会选到第3项。
我希望只有当按上下方向键才控制选项的上下移动,按左右方向键时将焦点移到其他控件,如何做到呢?

解决方案 »

  1.   

    在KeyDown或者KeyUp中
    if (e.KeyData == Keys.Left || e.KeyData == Keys.Right)
    {
        e.Handled = true;
    }
      

  2.   

    在ListBox的PreviewKeyDown事件中添加代码:if(e.Alt || e.Shift || e.Control) { return; }
    if(e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
    {
        //使之作为一般按键来处理
        e.IsInputKey = true;
    }然后在KeyDown事件中作如下处理
    if(e.Alt || e.Shift || e.Control) { return; }
    if(e.KeyCode == Keys.Left)
    {
        e.Handled = true;
        //以下是焦点移动代码,自己添加
    }
    if(e.KeyCode == Keys.Right)
    {
        e.Handled = true;
        //以下是焦点移动代码,自己添加
    }