Плагин MS Word, добавляющий кнопку, которая появляется при щелчке правой кнопкой мыши по выделенному тексту

StackOverflow https://stackoverflow.com/questions/684438

  •  22-08-2019
  •  | 
  •  

Вопрос

Я работаю над общей надстройкой для MS Word 2007.Я хотел бы добавить кнопку, которая появляется при щелчке правой кнопкой мыши по выделенному тексту.Приложенный снимок должен прояснить это.

В настоящее время пользователь должен выделить текст, а затем нажать кнопку на пользовательском элементе управления.Было бы намного проще, если бы после выделения текста он / она мог щелкнуть по нему правой кнопкой мыши и нажать соответствующую кнопку во всплывающем окне.

alt text

Это было полезно?

Решение 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);
}

Другие советы

Вам нужно расширить правильное контекстное меню.Следующая ссылка описывает на словах (без исходного кода), как этого можно достичь:

Совместное добавление с использованием Word

Может быть, это Ссылка могло бы немного помочь с кодированием.Я сам этого не пробовал, но это может указать в правильном направлении.

Удачи вам!:)

Редактировать:

Обязательно ли это должно быть контекстное меню в стиле ленты или будет достаточно кнопки в обычном контекстном меню?В случае, если обычное меню будет в порядке, вы могли бы использовать этот способ (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, я не уверен, работает ли это точно так же с технологией общих надстроек, но, возможно, это действительно помогает ;)

От MSDN -

Вы не можете изменить мини-панель инструментов программно.

чуть больше половины пути по доку.Поиск на мини-панели инструментов.

Редактировать:Всплывающее окно, которое вы обвели кружком на изображении выше, появляется не при щелчке правой кнопкой мыши, а при выделении.Контекстное меню (под выделенным текстом) может иметь ваши пользовательские функции, но не на мини-панели инструментов.

http://groups.google.com/group/microsoft.public.word.docmanagement/browse_thread/thread/cf55d996b3f51a06/65b2bad22e2a3583?lnk=st&q=Removing+Items+from+Word+2007 вот как это сделать в VBA.Это очень похоже на использование COM и, вероятно, создание надстройки word (хотя я этого не пробовал) В основном вам нужно найти элемент управления контекстного меню и добавить в него элемент (вашу функцию).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top