Добавить свою позицию(menuitem) в контекстное меню в MS Project 2016 (VSTO)
Нужно добавить в стандартное контекстное меню свой пункт меню. На диаграмме Ганта в MS Project 2016 через VSTO. Рою интернет 2й день не получается. Я так понимаю нужно знать ID контекстного меню. foreach выдает 43 вариантов commandbar (в примере кода индекс 1 менял на от 1 до 43) Где то появляется меню но не в контексте. А на верхней панели.
вот примерный код.
Microsoft.Office.Interop.MSProject.Application app = new Microsoft.Office.Interop.MSProject.Application();
CommandBar popupCommandBar = app.CommandBars[1];
var commandBarButton = (CommandBarButton)popupCommandBar.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, Missing.Value, true);
commandBarButton.Caption = "Hello !!!";
commandBarButton.FaceId = 356;
commandBarButton.Tag = "HELLO_TAG";
Важно. Проджект на русском. Но это один из многих вариантов найденых в инете. Что не так делаю? Спасибо.
Ответы (1 шт):
В общем вся моя ошибка была в том что я использовал визуальный ribbon. Который считается устаревшим. Нужно использовать Ribbon XML Там меню делается через XML теги. И нельзя смешивать. Когда один ribbon визуальный а второй XML.Хотя странно что в Excel2016 CommandBar работает правильно а в Project2016 он не работает с контекстным типом меню. По крайней мере у меня не получилось.
Вот так будет выглядеть контекстное меню которое нужно добавить в конец XML Ribbon
<contextMenus>
<contextMenu idMso="ContextMenuTaskCell">
<menuSeparator/>
<button id="MyMenuItem" label="My Menu Item" onAction="Button_Click" getImage="GetImage" />
<menu id="MySubMenu" label="My Submenu" >
<button id="MyButton2" label="Button on submenu" />
</menu>
</contextMenu>
</contextMenus>