我有这个 Windows 窗体应用程序,它位于通知区域。单击图标将其置于前面,再次单击它(或单击应用程序 X 图标)将其返回。这种类型的应用程序在通过单击图标显示窗口时始终位于顶部很重要(尽管它是可选的)。
右键单击该图标会弹出一个上下文菜单,您可以在其中选择是否启用“始终位于顶部”选项。当应用程序第一次启动时,应用程序设置是从 XML 文件中读取的,我 99% 认为这可以正常工作,TopMost
属性被正确读取(和写入)。
过了一段时间(几分钟,几小时,几天,无论如何;我通常休眠并且很少关机)TopMost
停止工作。我没有更改选项,我认为没有任何东西会更改选项值,但我单击通知区域图标并且应用程序没有出现在前面。它出现了,但它在背景上(它显示在 Alt+Tab 上),它不是“总是在最上面”,因为它应该。我调出上下文菜单,禁用该选项(因为它已启用)并重新启用它,然后它开始工作。该应用程序现在“始终处于领先地位”。但是,它可能会在一段时间后随时失去这种能力。
我无法理解为什么会发生这种情况以及如何发生这种情况。有谁知道为什么?如果没有,任何想法我怎么能尝试调试这种行为?
编辑:
我添加了一段代码以在TopMost
更改属性时显示 MessageBox 以查看是否可以注意到任何奇怪的行为,但这并不好。它没有帮助,因为表格已经存在,TopMost = true
但它仍然在后台......