【问题标题】:How can I make a menu-like form stay on the screen, on top of all other apps?我怎样才能让一个类似菜单的表单留在屏幕上,在所有其他应用程序之上?
【发布时间】:2016-02-29 11:42:08
【问题描述】:

我想在 C# 中制作一个类似于窗口任务栏的菜单栏,但我想知道如何使表单保持在屏幕顶部,并且其他程序不会像窗口任务栏和鼠标悬停时那样将其粘贴在上面在一个图标上,它将显示如下形式:

我做了这样的:

这就是我想要的

【问题讨论】:

    标签: c# .net windows winapi


    【解决方案1】:

    Windows 对此提供了便利,基本上可以让您创建停靠在屏幕一侧并且始终可见的伪任务栏。很久很久以前,Office 团队(可能Office 团队公开记录)使用它来创建桌面工具栏。

    无论如何,它们被称为Application Desktop Toolbars(或“AppBars”),文档为here。要注册一个,请使用ABM_NEW message 调用SHAppBarMessage 函数。完整的示例代码可在链接文档中找到,不幸的是它是 C++ 语言。

    要在 C# 应用程序中使用它,您必须 P/Invoke。据我所知,它在任何地方都没有被 .NET Framework 包装,可能是因为它不再被任何人使用。 This CodeProject article 似乎写出了必要的 P/Invoke 定义。我不能保证他们的正确性,但有文档武装,例如,你应该能够制作一个工作演示。

    还有另一篇 CodeProject 文章 here,由 Arik Poznanski 撰写,是关于使用 C# 的 shell 功能系列的一部分。它看起来更彻底,可能比你需要的更多。

    【讨论】:

      【解决方案2】:

      设置属性Form.TopMost 除非您有其他程序创建最顶层的窗口。呵呵!

      【讨论】:

      • 感谢它的解决方案,但另一个问题是其他程序将被点击:)
      • 是的,因为您正在调试应用程序,一旦您完成开发,我将在最后设置该属性。无论如何,该应用程序将独立运行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 2022-08-16
      相关资源
      最近更新 更多