【问题标题】:Outlook VSTO recipients changed eventOutlook VSTO 收件人更改事件
【发布时间】:2018-03-25 08:28:23
【问题描述】:

我正在开发一个用 C# 编写的 Outlook 插件。当收件人发生变化时,我需要实现一些业务逻辑。根据我的研究,在 VSTO 中没有这样的事件。我尝试使用 MailItem 中的 PropertyChanged 事件,但触发次数过多。如果我在收件人中粘贴了 2 封电子邮件,则为 TO、BCC、CC 为每封电子邮件触发 3 次。这对我没有帮助。有没有办法知道用户何时输入收件人字段或使属性更改事件不触发这么多次?

【问题讨论】:

    标签: c# outlook vsto outlook-addin


    【解决方案1】:

    您可以为此使用计时器 - 当事件触发时,重置计时器(禁用/启用)。仅在计时器事件中进行处理 - 这样您将在超时后仅处理收件人一次。

    见https://social.msdn.microsoft.com/Forums/vstudio/en-US/417d026c-4486-4273-b346-94e20dad4796/propertychange-event-and-mailtitem-properties?forum=outlookdev

    【讨论】:

    • 感谢您的回答,看来它适用于我的情况。我还有一个问题。如果我单击按钮检查名称或多次失去焦点,我会显示该事件会触发。用户填写“收件人”字段后是否有其他解决方案?
    • 不,但是为什么你需要一个不同的事件?计时器技巧对您不起作用吗?您可以在 OutlookSpy () 中看到实时触发的事件 - 单击 CurrentItem 按钮并转到“事件”选项卡:事件日志位于选项卡底部。
    • 它有效,感谢您的上述回答!我想知道是否可以通过单击没有或在支票名称之前的收件人字段来自动触发该事件。
    • Outlook 非常擅长仅在某些情况发生变化时触发 PropertyChange 事件。它可以多次触发该事件,也可以针对未更改的属性触发该事件,但仍需要先更改某些内容才能触发该事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2021-03-03
    • 2018-11-27
    相关资源
    最近更新 更多