窗体上多个控件,我想回车后焦点传到下个控件,我用的代码是:
if keycode=13 then 
    sendkeys "{TAB}"
endif
但意想不到的是,按多了回车后整个键盘死了,键盘用不了了,必须注销才能用回键盘,客户不能得罪啊,你们告诉我怎办好?

解决方案 »

  1.   

    在前一个控件的Keypress事件中写
         if KeyAscii=13 then
              (下一个控件).SetFocus
          endif
    就可以了。
      记得结帐!!!
      

  2.   

    KeyPress和keydown有什么区别?
    不会跑到command的,只是text上的.
    野狼的方法真笨,一个窗体几十个控件,你编程真的这样做?
      

  3.   

    VB程序中用sendkeys 多次会导致键盘锁死,甚至死机。所以能不用它就尽量不用。
      

  4.   

    全是文本框填东西的话,可用文本框控件数组,
    key=13时,用i+1属性.setfocus
      

  5.   

    我一般用:
    if KeyAscii=13 then
        (下一个控件).SetFocus
    endif
      

  6.   

    1、虽会锁键盘,但如果一定要用怎办?
    2、有一些text锁定了,一些没锁,用
    key=13时,用i+1属性.setfocus 会出错的,不好吧。
    3、当一些控件锁定不就进焦点,没锁就进焦点
    if KeyAscii=13 then
        (下一个控件).SetFocus
    endif 也不能实现。
    4、头都疼了,能给出一个好方法吗?在线等!!!
      

  7.   

    Private Sub text2_KeyDown(KeyCode As Integer, Shift As Integer)
        '向上移
        If KeyCode = vbKeyUp Then text1.SetFocus
        '向下移
        If KeyCode = vbKeyReturn Or KeyCode = vbKeyDown Then text3.SetFocus
    End Sub
      

  8.   

    if KeyAscii=13 then
        (下一个控件).SetFocus
    endif 也不能实现。
    在此之前加:
      if (下一个控件).enable=true then
        if KeyAscii=13 then
        (下一个控件).SetFocus
        endif 
      end if
    就可以解决锁定的控件的问题。
      

  9.   

    在前一个控件的Keypress事件中写
         if KeyAscii=13 then
              (下一个控件).SetFocus
          endif
    这种方法最好!明白呼!