1

我编写了一个 Outlook 插件,它应该在写入后更改一个 Contactitem。我使用 ItemChange EventHandler

folder.ItemChange += new Outlook.ItemsEvents_ItemChangeEventHandler(ContactItemChange);

但是当我编辑一个项目时,我的代码总是在后台运行,所以我无法编辑我的项目。

我已经尝试过 item.AfterWrite 和 item.Write 但事件永远不会触发。

    private void ContactItemChange(object item)
    {
        if (item is ContactItem)
        {
            ((ContactItem)item).AfterWrite += ThisAddIn_Write;
        }
    }

需要帮忙!再见科诺比

4

1 回答 1

1

您的活动注册可能会被垃圾收集。确保folder被声明为私有类成员,并且您还需要管理ContactItemsList<ContactItem>或类似)的私有类成员集合,以确保AfterWrite事件处理程序已正确注册且不会被丢弃。

作为参考,请参阅此 SO 帖子,其中描述了事件处理的 VSTO 限制以及如何正确附加到 Office 事件。

于 2012-06-04T12:51:36.060 回答