edit1,edit2,...放置在form1上,缺省时需用tab跳转:
  1如何用回车键实现类似的跳转?
  2如何用类的方法来判断是否为edit来实现?

解决方案 »

  1.   

    引自hubdog,供參考需要用回车键代替TAB键下移一个控件时,把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.form1的Preview设置为True
    procedure TfrmSysDebug.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (key=#13) then
      begin
        key:=#0;
        Perform(WM_NEXTDLGCTL,0,0);
      end;
    end;
      

  3.   

    Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);
    Begin
     if key=#13 then { 判断是按执行键}
     if (ActiveControl is TEdit) Then
     Begin 
      key:=#0;
      perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
     end;