将每个 edit 的 OnKeyPress 设置为 Edit1KeyPress
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then
selectNext(TWincontrol(sender),true,false);
end;
可以你设置窗体Form的KeyPreview为true,然后写一个commonKeydown事件:
procedure TBillInputInnerBaseForm.CommonKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_RETURN) or (Key = VK_NEXT) then
begin
SelectNext(TWincontrol(Sender), True, True);
end;
end;
然后在每个Edit的OnKeyDown事件中指定为这个公有事件即可。
在窗体的KEYPRESS事件中加
procedure TForm_LuRu.FormKeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then
{ 判断是按执行键}
begin
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
jsxjd 的办法最好,先把edit的Taborder设成一个挨一个就是了。
将每个 edit 的 OnKeyPress 设置为 Edit1KeyPress
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then
selectNext(TWincontrol(sender),true,false);
end;