MS Word插件,添加一个右键单击所选文本时弹出的按钮

时间:2009-03-26 03:43:12

标签: c# word-2007 shared-addin

我正在为MS Word 2007创建一个共享插件。我想添加一个按钮,当右键单击选定的文本时弹出该按钮。附件快照应该清楚说明。

目前,用户必须选择文本,然后单击自定义控件上的按钮。如果在选择文本后,他/她可以右键单击它并按下弹出窗口中的相关按钮会更容易。

alt text

4 个答案:

答案 0 :(得分:2)

您需要扩展正确的上下文菜单。以下链接用文字(无源代码)描述了如何实现这一目标:

Shared Addin using Word

也许这个Link可能对编码有所帮助。我自己没有试过,但它可能指向正确的方向。

祝你好运! :)

修改

它必须是功能区样式上下文菜单还是正常上下文菜单中的按钮是否足够? 如果普通菜单没问题,你可以用这种方式(C#):

 Microsoft.Office.Core.CommandBar cb = this.Application.CommandBars["Text"];

 Office.CommandBarControl newButton = cb.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, missing, missing);  
 newButton.Caption = "Test";
 newButton.Visible = true;
 newButton.Enabled = true;

你可以用VSTO做到这一点,我不太确定它是否与共享插件技术完全相同,但也许它确实有帮助;)

答案 1 :(得分:2)

以下是如何做到这一点......

Microsoft.Office.Core.CommandBar cellbar = diff.CommandBars["Text"];
Microsoft.Office.Core.CommandBarButton button = (Microsoft.Office.Core.CommandBarButton)cellbar.FindControl(Microsoft.Office.Core.MsoControlType.msoControlButton, 0, "MYRIGHTCLICKMENU", Missing.Value, Missing.Value);
if (button == null)
{
   // add the button
   button = (Microsoft.Office.Core.CommandBarButton)cellbar.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton, Missing.Value, Missing.Value, cellbar.Controls.Count + 1, true);
   button.Caption = "My Right Click Menu Item";
   button.BeginGroup = true;
   button.Tag = "MYRIGHTCLICKMENU";
   button.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(MyButton_Click);
}

答案 2 :(得分:1)

来自MSDN -

  

您无法以编程方式修改Mini工具栏。

文档稍微过了一半。在迷你工具栏上搜索。

编辑: 您在上图中圈出的弹出窗口没有出现在右键单击中,它会突出显示。上下文菜单(在所选文本下方)可以具有您的自定义功能,但不在迷你工具栏中。

答案 3 :(得分:0)

http://groups.google.com/group/microsoft.public.word.docmanagement/browse_thread/thread/cf55d996b3f51a06/65b2bad22e2a3583?lnk=st&q=Removing+Items+from+Word+2007是如何在VBA中完成的。使用COM非常相似,可能会创建一个单词加载项(虽然我还没试过)你基本上需要找到上下文菜单控件并向其中添加一个项目(你的函数)。