【问题标题】:Can't Alt+Tab back to a TopMost form不能 Alt+Tab 返回 TopMost 表单
【发布时间】:2017-01-02 14:26:08
【问题描述】:

我在 C# 中有一个带有 TopMost = true 的 winform 工具窗口,在 XP 上运行,从 Excel 加载项中显示。当显示表单时,我点击 Alt+Tab,它让我回到 Excel。如果我再次点击 Alt+Tab,我希望它会带我回到我的表单,但它会转到下一个窗口(在本例中为 Visual Studio)。任何后续 Alt+Tab 调用在 Excel 和 Visual Studio 之间交替。另外,如果我 Alt+Shift+Tab,它会回到我的表单(所以它仍然是订单的一部分,只是订单不是我想要的)。

如果我简单地设置TopMost = false,一切都会按预期进行。我刚刚用一个全新的空项目复制了这个——实际上我唯一做的就是制作一个 TopMost 表格。它似乎与 TopMost 属性完全隔离。

当然,我希望 Alt+Tab 以我期望的方式工作。 有什么想法吗?

【问题讨论】:

  • 当表单失去焦点时,您能否将 TopMost 设置为 False,或者这样做会破坏整个目的。
  • 不幸的是,没有达到整个目的(我想让表格半透明并漂浮在 Excel 上)。我没有从您链接的问题中找到任何有意义的内容:在我的重现中,除了 TopMost 之外,它似乎并不特定于任何东西(而且问题看起来正试图达到完全相反的效果)。
  • 也许您可以将alt+tab 作为全局热键,并即时禁用TopMost。我知道一个黑客,但这是我得到的最好的。 stackoverflow.com/questions/2450373/…
  • 我认为这是设计使然。 Alt+Tab 很可能意味着“切换到现在不在顶部的另一个窗口”。您永远不需要帮助切换到顶部的窗口,它很容易到达。

标签: c# winforms


【解决方案1】:

我的应用程序的最顶层表单包含在Alt+Tab 序列中。但我发现,如果我将表单ShowInTaskbar-property 设置为true,情况并非如此。看看这个属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多