怎样用ENTER键实现TAB键的功能

解决方案 »

  1.   

    需要用回车键代替TAB键下移一个控件时,把Form的KeyPress设为True,加入下列代码拦截击键:
    Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);
    Begin
     if key=#13 then { 判断是按执行键}
     if not (ActiveControl is TDbgrid) Then
     Begin { 不是在TDbgrid控件内}
      key:=#0;
      perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
     end else
     if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}
     begin
      With TDbgrid(ActiveControl) Do
      if Selectedindex<(FieldCount-1) then  Selectedindex:=Selectedindex+1{ 移动到下一字段}
      else Selectedindex:=0;
     end;
    End; 
      

  2.   

    太麻烦了,直接这样就行了。
    1、把form的KeyPreview属性设置成True
    2、在form的onKeyPress事件加入
       if key = #13 then
         keybd_event(VK_TAB,0,0,0);
      

  3.   

    procedure TfrmMtDictionary.edtTypeKeyPress(Sender: TObject; var Key: Char);
    begin
        if Key = #13 then
        begin
            Key := #0;
            SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
        end;
    end;