假如form1上有三个MaskEdit分别为MaskEdit1,MaskEdit2,MaskEdit3,它们的TabOrder分别为0,1,2,当焦点在MaskEdit1时,按回车,焦点会到2,当焦点在MaskEdit2时,按回车,输入焦点会到3

解决方案 »

  1.   

    MaskEdit.OnKeyPress
    var
      vIndex ,vTabOrder  : Integer
    begin
      if Key = #13 then
      begin
        vTaborder := TMaskEdit(Sender).TabOrder;
        For vIndex := 0 to Form1.ComponentCount - 1 do
        begin 
          if Form1.Components[vIndex] Is TMaskEdit then
            if TMaskEdit(Form1.Components[vIndex]).TabOrder = vTaborder + 1 then
              TMaskEdit(Form1.Components[vIndex]).SetFouse;
        end;
      end;
    end;----------------
    沉沦中..........
      

  2.   

    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
       if key=#13 then {判断是按执行键}
          if not (ActiveControl is TDbgrid) Then { 不是在TDbgrid控件内}
          Begin
             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;
      

  3.   

    不用这么麻烦吧
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
        Perform(WM_NEXTDLGCTL,0,0)
    end;
    //把Form的KeyPreview属性设成False