VSTO вызывает метод ThisAddIn из класса ленты - PullRequest
0 голосов
/ 05 августа 2020

У меня простая проблема. У меня есть небольшая надстройка для Outlook. Теперь я хочу добавить к нему ленту для ручного выполнения метода.

public partial class ThisAddIn
{
    Outlook.NameSpace outlookNameSpace;
    Outlook.MAPIFolder inbox;
    Outlook.Items items;
    Outlook.MAPIFolder destinationFolder = null;
    Outlook.MAPIFolder rootFolder = null;
    //Outlook.Folders rootFolderFolders = null;
    Outlook.Store store = null;



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



    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {

        outlookNameSpace = this.Application.GetNamespace("MAPI");
        inbox = outlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
        items = inbox.Items;
        items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd);

    }

       public void RibbonAction()
        {

            MessageBox.Show("Action Found Class");
            Outlook.Explorer currentExplorer = null;
            currentExplorer = this.Application.ActiveExplorer();


        }

и MyRibbon.cs

public class MyRibbon : Office.IRibbonExtensibility
    {
        private Office.IRibbonUI ribbon;

        public MyRibbon()
        {
        }

        public void OnTextButton(Office.IRibbonControl control)
        {
                        
thisAddIn.RibbonAction();

        }

Я хочу перебирать выбранные элементы в Outlook исследователь. Кажется, я не могу сделать это в MyRibbon, поэтому я хочу реализовать метод в thisAddIn. Но Visual Studio не позволила мне этого сделать.

1 Ответ

1 голос
/ 12 августа 2020

Поскольку похоже, что вы не используете функцию RibbonAction() в классе ThisAddIn, удалите ее здесь и вставьте функцию непосредственно в класс MyRibbon.

Чтобы получить ActiveExplorer в другом месте, например в классе ThisAddIn, вы можете использовать следующий код:

Outlook.Explorer activeExplorer = Globals.ThisAddIn.Application.ActiveExplorer();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...