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

窗体置顶有关问题

2012-04-01 
窗体置顶问题主窗体已经可以实现置顶功能,但是一弹出子窗体,置顶的功能就消失了...请问如何解决???用的是S

窗体置顶问题
主窗体已经可以实现置顶功能,但是一弹出子窗体,置顶的功能就消失了...请问如何解决???
用的是 SetWindowPos(main.handle, HWND_TOPMOST, main.Left, main.Top, main.Width, main.Height,0);

[解决办法]
Show可以,ShowModal不可以
原因可以看ShowModal的源码
下面这样就可以使子窗体永远在主窗体之上,可以控制主窗体的Enabled属性模拟ShowModal;

//子窗体
TForm2 = class(TForm)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
if Owner is TWinControl then
Params.WndParent := TWinControl(Owner).Handle;
end;

//主窗体
procedure TForm1.Button1Click(Sender: TObject);
begin
TForm2.Create(self).Show;
end;

热点排行