procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
IF KEY=#13 then
begin
key:=#0;
Perform(WM_NEXTDLGCTL,0,0); //postmessage(,,,,)
end;
end;
如果你的窗体上没有dbgrid 可以用上面的代码,但是你的 窗体如果有dbgrid ,
就不行了,因为焦点在dbgrid 就跳不出来了。
需要用回车键代替TAB键下移一个控件时,
把KeyPress设为True,加入下列代码拦截击键:
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
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Edit1.SelStart>=2 then //如果要写6个字符就改成6好了
ActiveControl:=edit2;
end;