在DELPHI写的程序中如何按回车键跳到下一个控件文本框中进行输入?

解决方案 »

  1.   

    onKeyPress事件:if Key=#13 then
      Edit2.SetFocus;
      

  2.   

    From 的KeyPreview 设置为True
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if Key=Char(13) then
        Perform(WM_NEXTDLGCTL,0,0)
    end;
      

  3.   

    注意个控件的Taborder的值,这个就是控制顺序的!
      

  4.   

    Edit2.SetFocus
    不过我用了XPMENU后,一用这个就出错,不明白。
      

  5.   

    if key=vk_return then
      begin
        key:=vk_tab;
        selectnext(activecontrol,true,true);
      end;
      

  6.   

    wozhuchuanwei(四库全输)的好,单个就用onKeyPress事件:if Key=#13 then
      Edit2.SetFocus;
      

  7.   

    if Key=#13 then
      Edit2.SetFocus;
    我一直在用
      

  8.   

    From 的KeyPreview 设置为True
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if Key=Char(13) then
        Perform(WM_NEXTDLGCTL,0,0)
    end;
      

  9.   

    if Key=#13 then
      key := #0;//加上这句,要不有响声
      Edit2.SetFocus;
      

  10.   

    if Key=#13 then
      Edit2.SetFocus;
      

  11.   

    procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
     if key=13 then
          Edit1.SetFocus;
    end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
          Edit1.SetFocus;
    end;
      

  12.   

    把一个窗体的KeyPreview的属性设为true,并且在窗体中把要按顺序移动的控件的TabOrder的属性分别设为0,1,2....等等。
    然后在这个窗体的OnKeyPress事件中写入如下代码:
    begin
         if Key = #$1b then
          begin
          form1.Close;
          end;
          if key=#13 then
          begin
             key:=#0;
             perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
          end;
    end;
    该代码的意思为:
    当按下ESC键时,关闭该窗体,当按下回车键时,移动到下一个控件.
      

  13.   

    if Key=Char(13) then
        Perform(WM_NEXTDLGCTL,0,0)
      

  14.   

    窗体的KeyPreview的属性设为true,并且在窗体中把要按顺序移动的控件的TabOrder的属性分别设为0,1,2....等等。
    然后在这个窗体的OnKeyPress事件中写入如下代码:
    begin
         if Key = #$1b then
          begin
          form1.Close;
          end;
          if key=#13 then
          begin
             key:=#0;
             perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
          end;
    end;
      

  15.   

    呵呵,xp风格的很多控件都失去了canfocus的权利,所以已经不能setfocus了