在KeyPress事件中写:
  if Key = #13 then
    ValidParentForm(Sender as TEdit).Perform(WM_NEXTDLGCTL, 0, 0)

解决方案 »

  1.   

    to chechy 
         高手,需要那么麻烦吗?直接用formkeypress不行吗?例如:
        if key =#13 then
          begin
            key :=#0;
            selectnext(activecontrol,true,true);
          end;
        能否解释以下您的写法的用意或者特别之处?
      

  2.   

    我写的控件,内置了这些代码,只不过来拷贝而已。
    FormKeyPress也可以,但是KeyPreview要设为True。直接写
      Form1.Perform(WM_NEXTDLGCTL, 0, 0),这样不用担心ActiveControl在某些时候是Nil。
      

  3.   


      if Key = #13 then {判断是否是执行键}
        if not (ActiveConTrol is TDbgrid ) then
          Begin {不在DBGRID中}
            key := #0;
            perform(WM_NEXTDLGCTL, 0, 0);{移动到下一个控件}
          end else
            if(ActiveConTrol is TDbgrid ) then{在DBGRID中}
          Begin
            With TDbgrid(ActiveConTrol) Do
              if Selectedindex < (FieldCount - 1) then
                SelectedIndex := SelectedIndex + 1{移动到下一字段}
              else SelectedIndex := 0;
          end;KeyPreview要设为True
      

  4.   

        procedure MyKeyPress(Sender: TObject;var Key:char);procedure TForm1.MyKeyPress(Sender: TObject; var Key: char);
    begin
      if Key = #13 then
        SendMessage(Handle,WM_NEXTDLGCTL,0,0);
    end;
     
    然后将这个事件赋给你所有的Edit的OnKeyPress!
      

  5.   

    用FindNextControl或者GetTabOrderList。详细说明看帮助
      

  6.   

    to chechy:
         高手,受教了!小子明白也!我还真佩服你!真的!