首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Edit控件的OnEnter事件中打开一个新窗体后怎么重获焦点

2013-11-29 
Edit控件的OnEnter事件中打开一个新窗体后如何重获焦点?一个Edit控件,OnEnter事件中打开一个新窗体Form,要

Edit控件的OnEnter事件中打开一个新窗体后如何重获焦点?
一个Edit控件,OnEnter事件中打开一个新窗体Form,要求窗体弹出后,Edit控件获得焦点,同时可以输入内容,不用鼠标点击切换焦点,如何实现?


OnEnter事件中写如下代码,无法实现该效果:

Form1 := TForm.Create(Application);
Form1.Show;
Edit1.SetFocus;


求更好的方法,谢各位!

[解决办法]
form1上有个edit1,form1中显示form2,在form2的OnShow事件里设置form1.edit1.SetFocus
[解决办法]

引用:
PostMessage(Edit1.Handle, WM_SETFOCUS, 0, 0);
这种方法也试过了,可以获焦,也可以自动选中Edit1中的文本,但是无法输入内容。
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;

热点排行