我有一个时钟应用程序。我已经设置了窗口的TopMost属性。但是,随机地,一些其他窗口或visual studio出现在时钟之上。
是否有其他方法可以使我的窗口(时钟应用程序)始终显示在所有其他应用程序的顶部。
发布于 2010-09-17 02:02:04
你确定这是个随机窗口吗?如果另一个窗口也是最上面的窗口,则它有可能位于您的窗口之上。
发布于 2014-01-13 19:19:19
我知道这个问题很老了,但我不太明白为什么被接受的答案会获得投票……或者为什么它被接受..。它并没有真正回答这个问题,也没有提供一个解决方案,这些天发布的答案很简短,几乎总是被社区否决和/或删除。啊,好吧,我猜它是在不同的时间发布的。
无论哪种方式,尽管它已经很老了,但我有一个可能的解决方案,供将来遇到这篇文章的任何人使用。您可以简单地处理Window.Deactivated Event和/或Application.Deactivated Event。当窗口成为背景窗口时发生Window.Deactivated Event,当应用程序不再是前台应用程序时发生Application.Deactivated Event。
这个想法是在每次应用程序或Window失去焦点时将相关的TopMost属性设置为true:
private void Window_Deactivated(object sender, EventArgs e)
{
// The Window was deactivated
this.TopMost = true;
}值得注意的是,其他开发人员也可以使用这种技术,所以这并不能保证您的Window始终处于领先地位,但它对我来说是有效的,而且这种情况肯定会通过使用它而得到改善。
发布于 2019-10-04 20:59:43
在大多数情况下,这样做应该是可行的
private void Window_Deactivated(object sender, EventArgs e)
{
// The Window was deactivated
Topmost = false; // set topmost false first
Topmost = true; // then set topmost true again.
}https://stackoverflow.com/questions/3729369
复制相似问题