解决方案 »

  1.   

    设置控件所在窗体的KeyPreview属性为true
    重写窗体OnKeyDown方法
    protected override void OnKeyDown(KeyEventArgs e)
     {
                if (e.KeyData == Keys.Down) {
                    this.comboBox2.Focus();
                }            base.OnKeyDown(e);
      }
      

  2.   

    看不懂你这是什么设计思路
    如果控件1根本不会获得焦点,只要按上下键就跳到控件2上,那控件1还有什么存在的必要么?就是想实现这个功能的话,在selectindexchanged事件里加代码,如果选择项改变了,把焦点给控件2
      

  3.   

    你可以在comboBox1上再注册一个 KeyPress事件。
      

  4.   

    你是想写个联动吗?
    要是联动的话,你就重新绑定combox2的数据源就行了。
      

  5.   

    请问如何再注册一个KeyPress事件
      

  6.   


    如果是这样,ComboBox控件里的选项就不能通过上下方向键选择了
      

  7.   

    每个控件都会有TabIndex属性,切换使用Tab键。
      

  8.   

    tab键可以切换,还希望通过上下箭头进行切换,希望combox出现下拉列表时上下箭头可以选项,不出现下拉列表时上下箭头将焦点移到别的控件上
      

  9.   

    换个方式不行么,比如加个ctrl什么的也好啊.非要跟控件本身的输入冲突?
      

  10.   

    既然上下可以切换控件,很明显COMBOBOX就应该做成上下可以直接切换选项
    否则还要鼠标点一下,那还键盘切换干嘛,不是白弄了或者换成左右切换控件
      

  11.   

    你这才做到COMBOBOX,就这么多问题
    要是有TEXTBOX,问题更多了
    你用自己的事件把系统默认操作给替换了,真的就方便操作了么,恐怕用起来更费劲吧
      

  12.   

     if (e.KeyValue == 13)
                {
                    e.Handled = true;   
                    comboBox2.Focus();
                }
      

  13.   

    你这是让回车跟tab一个效果
    楼主的意思是,如果按下,跟tab一个效果,如果按上,反向找上一个控件
      

  14.   

    此外
    e.Handled = true; 好像没什么用
    COMBOBOX本来也不响应回车,不用截获
      

  15.   

    你这是让回车跟tab一个效果
    楼主的意思是,如果按下,跟tab一个效果,如果按上,反向找上一个控件搜噶  那肯定会冲突。
      

  16.   

    一定要的话  用comboBox1 selectindex change  试下
      

  17.   


    private void comboBox1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyValue == 40)
                {
                    e.Handled = true;   
                    comboBox2.Focus();
                }
            }
    private void comboBox1_SelectedIndexChange(object sender, KeyEventArgs e){
          if (e.KeyValue == 40)
                {
                    e.Handled = true;   
                    comboBox2.Focus();
                }
    }