如何使表单始终位于任务栏顶部

问题描述 投票:0回答:2

我想用 C# 创建一个始终位于任务栏和其他程序顶部的表单。 我尝试使用 Topmost,但是当我单击 Alt+Tab 或键盘上的开始按钮时,任务栏位于我的表单顶部。

c# winforms
2个回答
1
投票

丑陋的方法:使用计时器。

private void timer1_Tick(object sender, EventArgs e)
{
    this.TopMost = true;
}

最好不要这样做。


0
投票

来自其他解决方案的 Alexander 计时器方法可能会起作用。这是我丑陋但有效的方法,与他的非常相似:

new Thread(() => { KeepOnTop(); }).Start();


private void KeepOnTop()
{
    while (!this.Disposing && !this.IsDisposed)
    {
        try
        {
            this.Invoke(this.BringToFront);
        }
        catch { }
        Thread.Sleep(100);
    }
}

在另一个答案的计时器示例中,您应该调用 BringToFront(),而不是在计时器滴答内设置 TopMost = true,当然还要确保为重复滴答设置时间。

© www.soinside.com 2019 - 2024. All rights reserved.