我正在为Microsoft Word构建一个C#加载项。我的目标是在右键菜单中添加一个按钮。很容易在" Text"中添加一个CommandBarButton。命令栏。
Word.Application application;
Office.CommandBar textCommandBar;
Office.CommandBarButton myButton;
private void InitContextMenuButton()
{
application.CustomizationContext = application.ActiveDocument;
textCommandBar = application.CommandBars["Text"];
myButton= textCommandBar.Controls.Add(Office.MsoControlType.msoControlButton, 1, "My Custom Button", 1, false)
as Office.CommandBarButton;
myButton.Tag = "My Custom Button";
myButton.accName = "My Custom Button";
myButton.Caption = "My Custom Button";
myButton.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(Button_Click);
myButton.Visible = true;
}
这项工作大部分时间都很好。
我的问题是有时按钮并不总是存在。有时,当我点击列表或表格时,"文本" CommandBar似乎没有出现在上下文菜单中。
答案 0 :(得分:1)
在所有上下文菜单之后,上下文菜单会根据右键单击的位置而改变。 “文本”菜单仅适用于“纯文本”上下文。当右键单击表格单元格时,会有一个不同的菜单。或者,如果标记了拼写/语法错误,您将获得一个不同的菜单。
因此,您需要确定按钮应显示在哪个上下文中,并将其添加到所有这些上下文菜单中。
请注意,自2010版以来,您不应该使用CommandBars对象执行此操作。您应该为此目的定义Ribbon XML。