Мне очень тяжело было следующее. Я использую Visual Studio 2010 Beta, разрабатываю шаблон слов (.dotm) в Visual Basic.Net
Я пытаюсь добавить свои собственные кнопки в текстовое всплывающее / контекстное меню слова. Однако, если я использую свойство .OnAction, я получаю сообщение об ошибке в слове, в котором говорится следующее:
Макрос не найден или был отключен из-за настроек безопасности макроса
Я предполагаю, что получаю эту ошибку, потому что она не может найти подпрограмму, которую я пытаюсь вызвать (имя правильное, и оно находится в том же классе).
Я попробовал другой подход, который представляет собой WithEvents, однако он связывает событие с кнопкой LAST, которую я добавляю в меню.
Третий подход, который я попробовал, был AddHandler, который запускается один раз, потом не более.
Вот код, который я использую:
For Each myItem In activeDoc.CommandBars
If myItem.Type = Microsoft.Office.Core.MsoBarType.msoBarTypePopup And myItem.Name = officeMenuName Then
shortMenu = Me.activeDoc.CommandBars(myItem.Index).Controls
shortPopup = shortMenu.Add(Type:=Office.MsoControlType.msoControlPopup, Temporary:=True)
With shortPopup
.Caption = menuName
.Visible = True
End With
For i = LBound(menuItems) To UBound(menuItems)
shortItem = shortPopup.Controls.Add(Type:=Office.MsoControlType.msoControlButton, Temporary:=True)
AddHandler shortItem.Click, AddressOf shortMenuNu
With shortItem
.Caption = menuHeader(i)
.Visible = True
.Tag = menuItems(i)
.OnAction = "shortMenuItem_Click" 'where the name of the sub resides in the same class
'or AddHandler shortItem.Click, AddressOf shortMenuItem_Click
End With
shortItem = Nothing
Next
End If
Next
Буду признателен за любую информацию по этому вопросу.
Есть идеи?