if key=#13 then if not (form.ActiveControl is TDbgrid) Then Begin key:=#0; form.perform(WM_NEXTDLGCTL,0,0); end else if (form.ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内} begin With TDbgrid(form.ActiveControl) Do if Selectedindex<(FieldCount-1) then Selectedindex:=Selectedindex+1{ 移动到下一字段} else Selectedindex:=0; end;
如果把上面的代码放到窗体的KEYDOWN事件中,并设置窗体的KEYPREVIEW为TRUE就行了。
procedure TFrmFormName.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if not (ActiveControl is TDBGrid) then begin Key := #0; Perform(WM_NEXTDLGCTL,0,0); end; end; end;//记得uses DBGrids
if key=#13 then begin key:=#0; perform(WM_NEXTDLGCTL,0,0); end;
procedure TFrmFormName.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if trim(edit1.text)='' then begin showmessage('輸入不能為空!!'); exit; end else begin edit2.text:=''; edit2.setfocus; end; end; end;
这是个通用的,如果有许多EDIT就很有用了 if key=#13 then if not (form.ActiveControl is TDbgrid) Then Begin key:=#0; form.perform(WM_NEXTDLGCTL,0,0); end else if (form.ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内} begin With TDbgrid(form.ActiveControl) Do if Selectedindex<(FieldCount-1) then Selectedindex:=Selectedindex+1{ 移动到下一字段} else Selectedindex:=0; end;
在Edit1的KeyDown里面写事件,if key = #13 then edit2.setfocus 我这个一定可以的!
你对EDIT1设一个ONKEY事件再用IF语句判断,如果是回车键的话就在IF语句中把输入标点激活EDIT2
在Edit1的KeyDown里面写事件,
如果Key是回车就把光标移到Edit2
if not (form.ActiveControl is TDbgrid) Then
Begin
key:=#0;
form.perform(WM_NEXTDLGCTL,0,0);
end else
if (form.ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}
begin
With TDbgrid(form.ActiveControl) Do
if Selectedindex<(FieldCount-1) then
Selectedindex:=Selectedindex+1{ 移动到下一字段}
else Selectedindex:=0;
end;
begin
if Key = #13 then
begin
if not (ActiveControl is TDBGrid) then
begin
Key := #0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
end;//记得uses DBGrids
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
1.发送WM_NEXTDLGCTL消息。
2.使用TWinControl的SelectNext方法,在窗口中就变成TForm的SelectNext。
begin
if Key = #13 then
begin
if trim(edit1.text)='' then
begin
showmessage('輸入不能為空!!');
exit;
end
else
begin
edit2.text:='';
edit2.setfocus;
end;
end;
end;
if key=#13 then
if not (form.ActiveControl is TDbgrid) Then
Begin
key:=#0;
form.perform(WM_NEXTDLGCTL,0,0);
end else
if (form.ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}
begin
With TDbgrid(form.ActiveControl) Do
if Selectedindex<(FieldCount-1) then
Selectedindex:=Selectedindex+1{ 移动到下一字段}
else Selectedindex:=0;
end;
我这个一定可以的!