1.用FORM的ACTIVECONTROL属性,指定SHOW后哪个控件获得焦点,或在ONSHOW事件中自由指定. 2.设置FROM的KEYPREVIEW为TRUE,在KEYPRESS事件中判断是否按下的是回车,如果是则 if Key = 13 then begin Perform(WM_NEXTDLGCTL, 0, 0); Key := 0 ; end;
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; procedure FormShow(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject); begin Edit1.SetFocus; Form1.KeyPreview := True; end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Ord(Key) = 13) then selectNext(Activecontrol,true,true); end;end.
procedure TForm1.Edit1KeyPress(Sender: TObject); begin if key=#13 then edit2.setfous; end; 以此類推.或 procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=vk_return then Keybd_event(VK_TAB, 0, 0, 0); end; 兩種都可以
procedure TForm1.FormShow(Sender: TObject); begin Edit1.SetFocus; end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl,True,True); end; end;
来晚了,还是用longtusoft(神灯之主) 的方法好: 1.用FORM的ACTIVECONTROL属性,指定SHOW后哪个控件获得焦点,或在ONSHOW事件中自由指定. 2.设置FROM的KEYPREVIEW为TRUE,在KEYPRESS事件中判断是否按下的是回车,如果是则 if Key = 13 then begin Perform(WM_NEXTDLGCTL, 0, 0); Key := 0 ; end;
设置 edit1 的 TabOrder 的属性为 02、输入完第一个edit1内容后,回车后自动进入下一个edit依次类推
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = 13 then
Perform(WM_NEXTDLGCTL, 0, 0);
end;
2.设置FROM的KEYPREVIEW为TRUE,在KEYPRESS事件中判断是否按下的是回车,如果是则
if Key = 13 then
begin
Perform(WM_NEXTDLGCTL, 0, 0);
Key := 0 ;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
procedure FormShow(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.SetFocus;
Form1.KeyPreview := True;
end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Ord(Key) = 13) then
selectNext(Activecontrol,true,true);
end;end.
begin
if key=#13 then
edit2.setfous;
end;
以此類推.或
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then Keybd_event(VK_TAB, 0, 0, 0);
end;
兩種都可以
begin
Edit1.SetFocus;
end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
SelectNext(ActiveControl,True,True);
end;
end;
1.用FORM的ACTIVECONTROL属性,指定SHOW后哪个控件获得焦点,或在ONSHOW事件中自由指定.
2.设置FROM的KEYPREVIEW为TRUE,在KEYPRESS事件中判断是否按下的是回车,如果是则
if Key = 13 then
begin
Perform(WM_NEXTDLGCTL, 0, 0);
Key := 0 ;
end;
上面给了一些例子了 可以去试试