Я разрабатываю надстройку для MS Word 2010, и я хочу добавить несколько пунктов меню в контекстное меню (только при выборе некоторого текста). Я видел несколько примеров для добавления элементов, но не смог найти, как добавить элементы условно. Короче говоря, я хочу переопределить что-то вроде обработчика OnRightClick. Спасибо заранее.MS Word Надстройка: RIght click handler
4
A
ответ
9
Это довольно просто, вам нужно обработать событие WindowBeforeRightClick
. Внутри события найдите требуемую командную строку и специальное управление и обработайте либо Visible
, либо свойство Enabled
.
В приведенном ниже примере я Переключите Visible
свойство пользовательской кнопки, созданную в командной строке с текстом на основе выбора (если выделение содержит «C#» скрыть кнопку иначе показать)
//using Word = Microsoft.Office.Interop.Word;
//using Office = Microsoft.Office.Core;
Word.Application application;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
application = this.Application;
application.WindowBeforeRightClick +=
new Word.ApplicationEvents4_WindowBeforeRightClickEventHandler(application_WindowBeforeRightClick);
application.CustomizationContext = application.ActiveDocument;
Office.CommandBar commandBar = application.CommandBars["Text"];
Office.CommandBarButton button = (Office.CommandBarButton)commandBar.Controls.Add(
Office.MsoControlType.msoControlButton);
button.accName = "My Custom Button";
button.Caption = "My Custom Button";
}
public void application_WindowBeforeRightClick(Word.Selection selection, ref bool Cancel)
{
if (selection != null && !String.IsNullOrEmpty(selection.Text))
{
string selectionText = selection.Text;
if (selectionText.Contains("C#"))
SetCommandVisibility("My Custom Button", false);
else
SetCommandVisibility("My Custom Button", true);
}
}
private void SetCommandVisibility(string name, bool visible)
{
application.CustomizationContext = application.ActiveDocument;
Office.CommandBar commandBar = application.CommandBars["Text"];
commandBar.Controls[name].Visible = visible;
}
Смежные вопросы
- 1. Word 2016 Надстройка: Эта надстройка больше недоступна
- 2. Загрузитель в MS Office Надстройка
- 3. C# Singleton, подвергшийся воздействию MS Word Interop Надстройка
- 4. MS Access - объект RIght-Click на объекте отключен
- 5. Ext.NET Click Handler string
- 6. Click Handler Xamarin
- 7. FLEX: UIComponent Click Handler?
- 8. exit from click handler
- 9. AmStockCharts - Click Event Handler
- 10. Jquery preend click handler
- 11. Android Button click Handler
- 12. Jquery click handler
- 13. Grid - кнопка click handler
- 14. Javascript right click popup
- 15. NSEvent click right menu
- 16. TreeNode Right Click Option
- 17. RIght-Click в GWT?
- 18. Catch Right-Click AS3
- 19. Right Click with Nightwatch
- 20. Word Надстройка Получить полный текст документа?
- 21. Разница между `.click (handler())` и `.click (обработчик)`
- 22. Trigger click from from click handler
- 23. Word Надстройка, не создающая кнопки в ленте
- 24. Кнопка VSTO Ribbon Right-Click Event
- 25. global click event handler (WithEvents)
- 26. jQuery click handler не работает
- 27. Android GridView Button Click Handler
- 28. Изменение функции jQuery click handler
- 29. Click Handler внезапно перестает работать
- 30. jquery mobile select click handler
это было легко , Мне интересно, как я не смог найти этого обработчика после стольких поисковых запросов :) Спасибо, хотя –