2016-11-14 6 views
1

Я в основном ищет, чтобы сделать это: C# (outlook add-in) context menu on foldersVSTO перспективы подгоняет контекст папки меню

Но проблема заключается в это никогда не срабатывает событие FolderContextMenuDisplay. Глядя на документацию, она кажется устаревшей, но кто-нибудь знает, что я должен использовать вместо этого?

Спасибо!

ответ

2

Используя ленточный XML, вы можете установить видимость контекстного меню.

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

Сначала добавьте элемент XML ленты в проект Outlook.

Затем добавьте следующий код в класс ThisAddIn. В этом примере предполагается, что лента называется Ribbon1 и что вы используете C#:

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() 
    {  
     return new Ribbon1();  
    } 

Затем замените содержимое файла Ribbon1.xml следующим:

<?xml version="1.0" encoding="UTF-8"?> 
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load"> 
    <contextMenus> 
     <contextMenu idMso="ContextMenuFolder"> 
      <button idMso="FolderPropertiesContext" getVisible="IsVisible" /> 
     </contextMenu> 
    </contextMenus> 
</customUI> 

Но ждать. Есть больше! В файле Ribbon1.cs создайте этот метод.

public bool IsVisible(Office.IRibbonControl control) 
    { 
string name = ((Outlook.Folder)control.Context).Name; 
     if (foldername == "Inbox") 
     { 
      return false; 
     } 
     return true; 
    } 

Когда пользователь щелкает правой кнопкой мыши по папке, мы указываем Outlook не показывать команду, возвращая false. В противном случае мы сообщаем Outlook, чтобы сделать команду видимой, вернув true.

+0

Здравствуйте, NAJ Если это полезно, пожалуйста, отметьте комментарий. –

Смежные вопросы