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

时间:2022-03-27 16:58:50
在DELPHI写的程序中如何按回车键跳到下一个控件文本框中进行输入?

20 个解决方案

#1


onKeyPress事件:

if Key=#13 then
  Edit2.SetFocus;

#2


同上。建议去了解一下键盘的各个事件,还有鼠标事件,这样以后就不会再有这种问题了

#3


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

#4


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

#5


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

#6


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

#7


忘了是FormKeyDown事件

#8


wozhuchuanwei(四库全输)

的好,

单个就用

onKeyPress事件:

if Key=#13 then
  Edit2.SetFocus;



#9


建议KEYUP事件

#10


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

#11


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

#12


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

#13


if Key=#13 then
  Edit2.SetFocus;

#14


ding

#15


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;

#16


把一个窗体的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键时,关闭该窗体,当按下回车键时,移动到下一个控件.

#17


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

#18


窗体的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;

#19


能說的上面各位都說了

#20


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

#1


onKeyPress事件:

if Key=#13 then
  Edit2.SetFocus;

#2


同上。建议去了解一下键盘的各个事件,还有鼠标事件,这样以后就不会再有这种问题了

#3


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

#4


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

#5


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

#6


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

#7


忘了是FormKeyDown事件

#8


wozhuchuanwei(四库全输)

的好,

单个就用

onKeyPress事件:

if Key=#13 then
  Edit2.SetFocus;



#9


建议KEYUP事件

#10


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

#11


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

#12


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

#13


if Key=#13 then
  Edit2.SetFocus;

#14


ding

#15


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;

#16


把一个窗体的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键时,关闭该窗体,当按下回车键时,移动到下一个控件.

#17


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

#18


窗体的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;

#19


能說的上面各位都說了

#20


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

#21