Плагин MS Word, добавляющий кнопку, которая появляется при щелчке правой кнопкой мыши по выделенному тексту
-
22-08-2019 - |
Вопрос
Я работаю над общей надстройкой для MS Word 2007.Я хотел бы добавить кнопку, которая появляется при щелчке правой кнопкой мыши по выделенному тексту.Приложенный снимок должен прояснить это.
В настоящее время пользователь должен выделить текст, а затем нажать кнопку на пользовательском элементе управления.Было бы намного проще, если бы после выделения текста он / она мог щелкнуть по нему правой кнопкой мыши и нажать соответствующую кнопку во всплывающем окне.
Решение 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 (хотя я этого не пробовал) В основном вам нужно найти элемент управления контекстного меню и добавить в него элемент (вашу функцию).