Edit控件的OnEnter事件中打开一个新窗体后如何重获焦点?
一个Edit控件,OnEnter事件中打开一个新窗体Form,要求窗体弹出后,Edit控件获得焦点,同时可以输入内容,不用鼠标点击切换焦点,如何实现?
OnEnter事件中写如下代码,无法实现该效果:
Form1 := TForm.Create(Application);
Form1.Show;
Edit1.SetFocus;
求更好的方法,谢各位!
[解决办法]
form1上有个edit1,form1中显示form2,在form2的OnShow事件里设置form1.edit1.SetFocus
[解决办法]
var
Form1: TForm2;
begin
Form1 := TForm2.Create(Application);
Form1.Show;
Edit1.SetFocus;
PostMessage(Edit1.Handle, WM_SETFOCUS, 0, 0);
我这样没问题啊.可以获焦点也可以自动选中
[解决办法]
Type
TMyEdit = class(TEdit)
protected
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
end;
{ TMyEdit }
procedure TMyEdit.WMSetFocus(var Message: TWMSetFocus);
begin
if not Form2.Visible then begin
SendMessage(Handle , WM_KILLFOCUS , 0 , 0);
Form2.Show;
SetFocus;
Message.Result := 1;
exit;
end;
inherited;
end;