Outlook ItemChange Handler(使项目不可更改)

时间:2012-06-04 07:51:09

标签: c# event-handling outlook add-in

我写了一个Outlook Addin,它应该在写完后更改一个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;
        }
    }

需要帮助! 再见 Konobi

1 个答案:

答案 0 :(得分:1)

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

有关参考,请参阅this SO post which describes VSTO limitations with event handling以及如何正确附加到Office事件。