2014-12-03 105 views
3

我正在Outlook中使用电子邮件实现自定义任务窗格。 核心是从这个链接MSDN (Walkthrough: Displaying Custom Task Panes with E-Mail Messages in Outlook)mailItem.PropertyChange停止触发

处理程序属性更改采取增加:

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

       mailItem.PropertyChange += PropertyChangeHandler; 
      } 

PropertyChangeHandler检查是收件人已经改变,不会与职位等一些重程序。但是...如果我添加10个收件人,并开始使用退格键删除它们,PropertyChangeHandler会在某个点停止点击。 没有错误。自定义任务窗格上的按钮正常工作。

出了什么问题?

似乎无论是事件被吃掉还是检查员都不正确,但我找不到问题并找到解决方案。

我也认为,这可能是关于“一大”时,下一个事件之前,以前的发射完毕,但是这是一个猜测

回答

0

你需要明确调用Save方法或保存邮件,使发生事件PropertyChange。 Outlook会在用户界面中缓存值,并且不会传播更改,直到项目被保存。

另外我会建议创建一个日志文件(一个普通的文本文件),您可以在其中编写调试语句。因此,你会明白代码中会发生什么。

+0

考虑使用Outlook窗体区域而不是任务窗格。有关更多信息,请参阅[如何将表单区域添加到Outlook外接程序项目](http://msdn.microsoft.com/zh-cn/library/bb386177.aspx)。 – 2014-12-04 10:38:26

+0

Outlook Form区域...我甚至没有看到将它停靠的方法! – 2014-12-04 10:53:23

+0

这不是关于“保存”。我有事件发生3,4,5次,然后即使我已经保存,也没有任何反应。 – 2014-12-04 10:58:05