关于c#:在.NET WinForms中创建自定义菜单

关于c#:在.NET WinForms中创建自定义菜单

Creating a custom menu in .NET WinForms

将.NET 2.0与WinForms结合使用,我想创建一个自定义的多列菜单(类似于单词2007 look&feel,但没有功能区)。

我的方法是创建一个控件,并使用向左/向右停靠的工具栏构造一个类似菜单的外观。但是,此解决方案有一些缺点,例如

  • 该控件只能放置并显示在表单中;
  • 如果窗体太小,则控件的某些区域将不会显示;
  • 控件也必须手动显示/隐藏。

因此,我正在寻找一种在应用程序边界之外显示此控件的方法。创建一个新表单将导致标题栏在显示中处于停用状态,所以这也没有了。另外,任何其他创建自定义菜单的方法都将受到欢迎。

编辑:我不想为此使用任何商业产品;并且由于它是关于简单的菜单自定义的,因此它与Microsoft的功能区"研究"没有任何关系。


  • 除非您要提供.net组件,否则应该立即购买。 获得这种控制权需要做很多工作-已经有供应商提供了这种UI。 例如 组件一
  • 如果您尝试将此组件构建为产品,则应查看下面的链接。 显然,Microsoft在Office UI周围拥有"免版税"许可证,以保护其研发投资。 到目前为止,您需要告诉他们您正在使用类似于Office UI的工具。 这里更多

MenuStrip类具有Renderer属性。 您可以分配自己的ToolStripRenderer派生类来自定义绘画。 这是相当多的工作。


推荐阅读