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

来源:互联网 发布:南京软件学校 编辑:程序博客网 时间:2024/05/16 16:20

很多次设置这个 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;



 

0 0
原创粉丝点击