c# - mailItem.PropertyChange 停止触发

标签 c# outlook vsto add-in

我正在 Outlook 中实现带有电子邮件消息的自定义任务 Pane 。 核心取自此链接 MSDN (Walkthrough: Displaying Custom Task Panes with E-Mail Messages in Outlook)

添加了属性更改处理程序:

    void TaskPane_VisibleChanged(object sender, EventArgs e)
            {
                Globals.Ribbons[inspector].ManageTaskPaneRibbon
.toggleButton1.Checked = taskPane.Visible;
...some code here...

                mailItem.PropertyChange += PropertyChangeHandler;
            }

PropertyChangeHandler 检查收件人是否已更改,并对帖子等执行一些繁重的例程。但是...如果我添加 10 个收件人并开始使用退格键删除它们 PropertyChangeHandler 在某个时候停止触发。 没有错误。自定义任务 Pane 上的按钮工作正常。

怎么了?

似乎事件被吃掉或检查器不正确,但我无法发现问题并找到解决方案。

我还认为在上一个事件完成之前触发下一个事件可能与“重负载”有关,但这是一个猜测

最佳答案

您需要调用 Save 方法或显式保存消息才能生成 PropertyChange事件被解雇。 Outlook 在 UI 中缓存值,并且在保存项目之前不会传播更改。

我还建议创建一个日志文件(一个常规文本文件),您可以在其中编写调试语句。因此,您将了解代码中发生的事情。

关于c# - mailItem.PropertyChange 停止触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27283147/

相关文章:

node.js - 使用node js读取outlook msg文件

c# - Outlook 2007 加载项部署为 DLL

html - 针对 Outlook HTML 电子邮件的 MSO 特定 CSS hack?

c# - 为所有用户部署 VSTO 加载项

c# - VSTO:如何强制 Visual Studio 运行 Excel 的新实例

c# - 使用联合调用 PInvoke 结构时,使用 StructLayout( LayoutKind.Explicit ) 我做错了什么?

c# - LINQ 根据与子元素的匹配返回元素

c# - 如何从Word文档中删除字段?

c# - Entity Framework 的悲观并发

outlook - 在 Outlook 2010 中以撰写模式打开 .eml 文件