我写了一个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
答案 0 :(得分:1)
您的活动注册可能正在收集垃圾。确保folder
被声明为私有类成员,您还需要管理ContactItems
( List<ContactItem>
或类似)的私有类成员集合,以确保AfterWrite
事件处理程序已正确注册,不会被丢弃。
有关参考,请参阅this SO post which describes VSTO limitations with event handling以及如何正确附加到Office事件。