请问如何实现在一个对话框中,在一个控件上按下Enter键,自动聚焦到下一个控件上(Tab顺序),主要是为了提高数据录入速度。我目前的实现方法是让所有要响应Enter键的控件的KeyUp事件连接到同一个事件处理方法,在该方法中判断sender是哪一个控件,然后根据不同的sender,调用紧接着其后的控件的Focus方法,使其激活,但总觉得这种方法不太好,尤其是是当控件多起来的时候,代码显得冗余。不知哪位高手有更好的办法?

解决方案 »

  1.   

    写一个类,传入一个控件的容器.遍历其中所有的控件,将其事件KEYUP委托出来,判断键值,然后SENDKEYS{TAB}
      

  2.   

    重载KeyDown事件,判断KeyCode,然后调用:
    (Control)sender.NextControl.Focus();
      

  3.   

    NextControl方法在哪里?我怎么找不到?
      

  4.   

    用JS寫一個onkeydown事件
    if(event.keyCode==13) event.keyCode=9
      

  5.   

    this.SelectNextControl(Control,forward,tabStopOnly)
      

  6.   

    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
       if(e.KeyChar==(int)Keys.Enter)
        SendKeys.Send("{Tab}");
    }
      

  7.   

    Control=this.ActiveControl;
    this.SelectNextControl(Control,forward,tabStopOnly)