当按下回车后选中下一个,功能和TAB键类似,但确定时(如提交)还是要他本来的功能

解决方案 »

  1.   

    在onkeypress事件中写
      if (Key = #13)and not (ActiveControl is TBitBtn) then
      begin
        try
        Key := #0;                                   { clear enter key }
        Perform(WM_NEXTDLGCTL, 0, 0);                { move to next control }
        except
        end;
      end;
      

  2.   

    Shift + Tabperform(WM_NEXTDLGCTL,0,0);这是向下移动,请问如何向上移动??????
    perform(WM_NEXTDLGCTL,1,0);即可向上移动
    为什么不看MSDN,不看HELP你当然不知道了。
    perform(WM_NEXTDLGCTL,0,1)
    控制焦点移动,还可以利用TWinControl.SelectNext()方法来做!
    *********************
    Form.KeyPreview := true; 在Form的KeyDown中
      if Key = VK_RETURN then
      begin
        if ActiveControl is TDBGrid or ... then
          PostMessage(ActiveControl.Handle, WM_KEYDOWN, VK_TAB, 0);
        else
          PostMessage(Handle, WM_KEYDOWN, VK_TAB, 0);
        Key := 0;
      end
    ---------------
    procedure EnterToTab(aForm: TForm; var Key: Char);
    begin
      if Key = #13 then
      begin
        key := #0;
        aForm.Perform(CM_DialogKey, VK_TAB, 0);
      end;
    end;
    ***************
    或者拦截Application.OnMessage即可,添加代码:
    if Msg.Message = WM_KEYDOWN then
    begin
      if Msg.wParam = VK_RETURN then
        Keybd_event(VK_TAB, 0, 0, 0);
    end; //if
      

  3.   

    用控件dosmove
    或看看dosmove的源码
      

  4.   

    OnkeyPress:
    if key = #13 then perform(wm_nextdlgctl,0,0)
      

  5.   

    OnkeyPress:
    if key = #13 then perform(wm_nextdlgctl,0,0)
    正确