請問delphi中要回車鍵按tab鍵的順序移動最簡捷的方法是怎樣的,有沒有一個發送鍵盤消息的函數?

解决方案 »

  1.   

    把Form的KeyPreview属性置为true,然后在Form的KeyPress事件中:
    if Key = #13 then
      SendMessage(Handle,WM_NEXTDLGCTL,0,0);
    如果要做更复杂的控制,那么你就要判断当前控件的类型,比如只有TEdit和TDBEdit控件才做:
    if Key=#13 then
    begin
      if (ActiveControl <>nil) then
      begin
        if (ActiveControl is TEdit) or (ActiveControl is TDBEdit) then
          SendMessage(Handle,WM_NEXTDLGCTL,0,0);    
      end;end;
      

  2.   

    在KEYDOWN中
    if key=13 then 
    Keybd_Event(vk_Tab,0,0,0);
      

  3.   

    下面的代碼實現以上功能有何利弊?
    procedure TFormCompany.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=13 then FormCompany.SelectNext(FORMCOMPANY.ActiveControl ,true,TRUE);
    end;