procedure TBaseFrm.DBEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
{回车跳到下一控件}
begin
  if (Key = VK_RETURN) or (Key = VK_DOWN) then
    SelectNext(Sender as TWinControl, True, True)
  else if Key = VK_UP then
    SelectNext(Sender as TWinControl, False, True);
end;

解决方案 »

  1.   

    if key =#13 then
     keybd_event(VK_TAB, MapVirtualKey(VK_TAB, 0), 0, 0);
      

  2.   

    if key =#13 then
     keybd_event(VK_TAB, MapVirtualKey(VK_TAB, 0), 0, 0);
      

  3.   

    if key =#13 then
     keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0);
      

  4.   

    同意 Snakeguo(楠) (莫等闲&up2myself)
      

  5.   

    建议重新封装TDBEdit并覆盖其KeyDown方法。procedure TMDBEdit.KeyDown(var Key: Word; Shift: TShiftState);
    begin
      inherited KeyDown(Key,Shift);
      if Shift=[] then
      begin
        if (Key = VK_RETURN) or (Key = VK_DOWN) then
          SelectNext(self, True, True)
        else if Key = VK_UP then
          SelectNext(self, False, True);
      end  
    end;这样就不需要去设定每一个TDBEdit的OnKeyDown事件了。
      

  6.   

    procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
            if key=#13 then
           dbedit2.SetFocus;
    end;
      

  7.   

    谢谢niu_zai,你的建议非常好,使我解决了一道难题,我将给你打20分。