在Visio中使用C#创建和删除自定义菜单






2.82/5 (6投票s)
2004年7月2日
2分钟阅读

83799

1075
使用 C# 程序创建 Visio 自定义菜单并处理点击事件。此项目要求 Visio 应用程序正在运行,并且需要打开一个默认的绘图。
引言
有几种方法可以处理 Microsoft Visio 应用程序中的菜单,但用户点击菜单时不会生成任何事件。处理菜单和菜单事件的最佳方法是通过 CommandBars
。我浏览的大多数网站都没有提供解决方案。一些论坛提到了一种实现方法,但我需要更快地找到解决方案。然后我了解了 CommandBars
。希望这篇文章能帮助您处理菜单栏的各个方面。
通过这篇文章,您不仅可以处理 Microsoft Visio 中的菜单,还可以处理其他一些 Microsoft 应用程序中的菜单。例如:Microsoft Word、Microsoft Excel、Microsoft Outlook 等。
本文主要集中在 Microsoft Visio 上。在本文中,我将向您展示如何创建自定义菜单以及如何处理菜单点击事件处理程序。
此演示需要添加 2 个组件:Microsoft Office 11.0 对象库、Microsoft Visio 11.0 类型库。
代码
此演示包含 CustomMenu
类,该类将负责设置自定义菜单,并从 Visio 应用程序的标准菜单栏中删除自定义菜单。
让我们从 using
声明开始
using Visio=Microsoft.Office.Interop.Visio;
上述语句包含 Microsoft Visio 互操作服务。
其次,是私有变量声明
private Microsoft.Office.Core.CommandBars commandBars;
private Microsoft.Office.Core.CommandBar commandBar;
private Microsoft.Office.Core.CommandBarButton commandBarButton;
上述变量用于保存 Microsoft Visio 应用程序的标准 CommandBars
。
private Visio.Application visioApplication;
object visioObject = Marshal.GetActiveObject("Visio.Application");
this.visioApplication = visioObject as Visio.Application;
The above statements holds the visio application reference.
要从 Visio 应用程序获取内置菜单,以下语句将起作用
Visio.UIObject uiObject = this.visioApplication.BuiltInMenus;
将菜单添加到菜单栏后,应使用以下语句将其设置为 Visio 应用程序的标准菜单栏
this.visioApplication.ActiveWindow.Document.SetCustomMenus(uiObject);
要获取 Visio 应用程序的标准 CommandBars
,必须执行以下语句
commandBars=
(Microsoft.Office.Core.CommandBars) this.visioApplication.CommandBars;
注意
此演示要求 Visio 应用程序正在运行,并且需要打开一个默认的绘图。
结论
CommandBars
可以用于很多事情:创建菜单栏、工具栏等。我认为 CommandBar
是处理 Microsoft 应用程序代码的最佳方式,您可以与应用程序进行交互。我希望您能在自己的项目中好好利用这段代码。