我想用 C# 创建一个始终位于任务栏和其他程序顶部的表单。 我尝试使用 Topmost,但是当我单击 Alt+Tab 或键盘上的开始按钮时,任务栏位于我的表单顶部。
丑陋的方法:使用计时器。
private void timer1_Tick(object sender, EventArgs e)
{
this.TopMost = true;
}
最好不要这样做。
来自其他解决方案的 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,当然还要确保为重复滴答设置时间。