try to override ProcessCmdKey, see a similar example in VB.NET by 韩睿http://www.csdn.net/Develop/read_article.asp?id=17424

解决方案 »

  1.   

    if (e.KeyChar ==(char)13) SendKeys.Send("{TAB}") ;  写在keydown事件中!
      

  2.   

    在上一个控件的KeyUp事件里写
    if (e.KeyValue==13)   //或者 (e.KeyCode==Keys.Enter)
    System.Windows.Forms.SendKeys.Send("{TAB}");
    即可将焦点转到下一个控件。
    楼主看行不?
      

  3.   

    可能有更复杂的办法,估计你不喜欢,何必那么麻烦下面估计是你要的
    if (e.KeyCode ==System.Windows.Forms.Keys.Enter) SendKeys.Send("{TAB}") ;
      

  4.   


    可能有更复杂的办法,估计你不喜欢,何必那么麻烦下面估计是你要的,写在keydown事件里面。if (e.KeyCode ==System.Windows.Forms.Keys.Enter) SendKeys.Send("{TAB}") ;
      

  5.   

    一种土方法:
    设定Form的属性KeyPreview为true,然后Form的KeyPress事件中加入代码:
    if (e.KeyChar == 0xd)
    {
    this.SelectNextControl(this.ActiveControl,true,true,true,true);
    }
      

  6.   

    如果我一个窗口上有20个控件,难道要在每个控件的keydown事件中都要这么写吗??
      

  7.   

    你可以蒋窗体的keypreview=true
    然后再窗体的然后Form的KeyPress事件中加入代码
    就不用每个都写了