一个窗体中有多个EDIT,我在EDIT1的KEYPRESS中加入如下代码,以实现下一个EDIT自动获得焦点。
procedure Tfrxscb.edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit2.SetFocus;
end;
运行时却不会使EDIT2自动获得焦点,还是要用TAB键,请问是哪错了?
procedure Tfrxscb.edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit2.SetFocus;
end;
运行时却不会使EDIT2自动获得焦点,还是要用TAB键,请问是哪错了?
这句话的功能是按回车键,edit2获得焦点。
我想你应该捕捉键盘消息.
如果是enter键.
则获得焦点.
然后寫上以上代碼就可以了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
Selectedindex:=Selectedindex+1{ 移动到下一字段}
else Selectedindex:=0;
end;
End;
procedure Tfrxscb.edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then edit2.SetFocus;
end;
begin
if Key = #13 then
Edit2.SetFocus;// SelectNext(ActiveControl, True, True);
end;
另外你看一下你的edit2的enter事件里写的是什么