我现在有 edit1,edit2,当我在edit1中输入内容后,然后想 一回车,
光标跳到 edit2.

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
     if key=#13 then
        Edit2.SetFocus;
    end;
      

  2.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=13 then
      edit2.SetFocus;
    end;
      

  3.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=13 then
      edit2.SetFocus;
    end;
      

  4.   

    检测key_down的键值哦
    如果是回车的话那么移动光标就是啦。好简单,
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      keybd_event(9,0,0,0);
    end;
      

  6.   

    在 edit1的KeyPress事件中写如下代码
    if Key = #13 then
      edit2.SetFouced;
    上面的代码通用性不好,你也可以这样写
    if Key = #13 then
      SendMessage(edit1.Handle,WM_NEXTDLGCTL,0,0);
    这样的话你要保证Edit2的Taborder属性的值要在Edit1的Taborder的值之后,比如,Edit1的taborder的值为1,那么Edit2的taborder的值就要为2
      

  7.   

    设置Form中Edit的Taborder,然后所有的Edit的OnKeyPress都可以响应同一个事件
      

  8.   

    procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if key=#13 then
    perform(wm_nextdlgctl,0,0);
    end;
      

  9.   

    写一次用N次
    if key=#13 then
     begin
       selectNext(sender as twincontrol,true,true);
       key:=#0;
     end;
    把Edit的OnKeyPress指向同一个事件
      

  10.   

    一句话:
    SelectNext(TWinControl(Sender), True, True);
      

  11.   

    直接调用窗体的SelectNext方法即可:
    if Key = #13 then
        SelectNext(Sender as TWinControl, True, True);
    第一个参数为当前控件,
    第二个参数为True时表示找下一个,False表示找前一个,
    第三参数为True时表示找下一个TabStop属性为True的控件,False相反。
      

  12.   

    重载Form的WndProc,如果消息为键盘按下且按键为VK_ENTER, 就吞掉这个消息,重新发一个按下TAB键的消息就OK了.这个Form中所有的Enter键按下都与Tab键按下为一回事了.
      

  13.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      Edit2.SetFocus;
    end;
      

  14.   

    在Onexit事件中做,不管是回车还是切换键也好,都会指向下个控件
      

  15.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
       perform(WM_NEXTDLGCTL, 0, 0);  //跳至下一TabOrder控件
    end;
      

  16.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=13 then
      edit2.SetFocus;
    end;
      

  17.   

    procedure Tpassin.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
        if key=#13 then
          edit2.SetFocus ;
    end;procedure Tpassin.Edit2KeyPress(Sender: TObject; var Key: Char);
    begin
        if key=#13 then
          button1.SetFocus ;
    end;
      

  18.   

    我现在就是这样做的,为什么不能自动能。
    我以前是做vfp的,设置属性,控件自己会跳。delphi还要写
      

  19.   

    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;
      

  20.   

    procedure Tpassin.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
        if key=#13 then
          edit2.SetFocus ;
    end;procedure Tpassin.Edit2KeyPress(Sender: TObject; var Key: Char);
    begin
        if key=#13 then
          button1.SetFocus ;
    end;
      

  21.   

    用SendMessage的方法好,因为你的代码可以通用,而且不是在固定某个控件,实际相当于TAB键被按下!或发送一个键盘事件,把TAB在按下回车时发出去!