【问题标题】:Restoring 'TopMost' window behavior after 'full screen mode' has ended (.NET)在“全屏模式”结束后恢复“TopMost”窗口行为(.NET)
【发布时间】:2011-01-16 16:59:35
【问题描述】:

我有一个(Windows 窗体)应用程序,它由一个带有“TopMost”属性集的窗口组成。如果应用程序(例如 PowerPoint)暂时进入全屏模式,我的窗口的“TopMost”行为不会恢复(即它将保持隐藏最大化的 PowerPoint 窗口)。有趣的是,这只发生在我的应用程序在另一个应用程序之前启动时——如果另一个应用程序在我的事情按预期工作之前启动。激活窗口(手动单击它)可以恢复所需的行为,但不幸的是,这不是我的解决方案。

我不确定导致此问题的原因,我对修复或解决方法非常感兴趣。

由于这可能是与操作系统相关的问题,我应该指出我使用的是 Windows 7 64 位。

谢谢, 彼得

【问题讨论】:

  • 当“暂时进入全屏模式”时,你是指在PowerPoint中播放幻灯片的时候吗?因为显然您希望幻灯片播放全屏。关闭 PowerPoint 后,您的应用程序不会自动按 Z 顺序重新排列。正如您所提到的,单击它会将其带回前面,一切正常。这是预期的行为。
  • 当我在全屏 PowerPoint 幻灯片演示文稿中点击 Escape 时,我的窗口隐藏在 PowerPoint 窗口后面(不再是全屏而是最大化)。
  • 我认为在系统方面只能有一个“最顶层”表单(或窗口),我敢打赌,powerpoint 在全屏时也会将自己设置为最顶层。
  • 看起来这是一个众所周知的问题,并且存在于多个 Windows 版本中:social.answers.microsoft.com/Forums/en-US/w7desktop/thread/…

标签: .net fullscreen z-order topmost


【解决方案1】:

尝试将最顶层的属性设置为:false
然后回:true
这应该覆盖 ppts topmost 属性。
您可以使用 Timer 类在程序中每隔几秒重复一次

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    相关资源
    最近更新 更多