您的位置:首页 > 产品设计 > 产品经理

让 Winform 窗口悬浮的简单方式,不可思议的 TopMost 属性

2016-12-02 00:33 302 查看
很多次设置这个 TopMost 属性会莫名的不起作用,有时又可以。一直在想是为什么会这样?

后来多次尝试,发现这个属性必须在窗体某些其他属性后设置,比如在 Height、Width 这样的属性后。

看了下 Windows 窗体应用程序启动时,主窗体的启动事件将按照以下顺序引发:

Control.HandleCreated

Control.BindingContextChanged

Form.Load

Control.VisibleChanged

Form.Activated

Form.Shown

所以在最后一个事件 Shown 里设置这个 TopMost 应该是最可靠的:

private void Form1_Shown(object sender, EventArgs e)

{

this.TopMost = true;

}

注意:如果悬浮这个窗体是主窗体,还有要 Show 的子窗体,会出现子窗体被盖住的情况:



所以在 Show 出子窗体前,需要设置一下:

...

this.TopMost = false;

// 关闭子窗体后再设置 TopMost

this.TopMost = true;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  winform
相关文章推荐