获取Outlook AppointmentItem的主题行的最新值

时间:2014-02-18 13:07:07

标签: c# dynamic outlook add-in subject

我在访问AppointmentItem的Subject字段中的实际输入文本时遇到问题。 我创建了一个Outlook 2010加载项,该加载项具有来自功能区的自定义按钮的回调。 如果有人在键入主题后立即单击按钮(并且不更改控件焦点),则可以获取主题字段之外的值。 在这些情况下,我得到的是主题的先前值,而不是最近输入的值。 (对于新创建的会议邀请,我得到一个空值)

   public void ToggleMeetingPlace_Callback(Office.IRibbonControl control)
    {
        if ((control!=null)&&(control.Id == "toggleMeetingPlace"))
        {
            var item = control.Context as Outlook.Inspector;
            if ((item != null) && (item.CurrentItem != null))
            {
                Outlook.AppointmentItem m_item = item.CurrentItem as Outlook.AppointmentItem;
                string subject = m_item.Subject;
                // some action
            }
        }
    }

但是,如果我开始调试,我会在监视窗口中看到一些有趣的行为: - 直接观看m_item.Subject仍返回旧值 - 但如果我为m_item设置了一个监视器,然后突然扩展了动态成员,则该值将更新为当前文本。

我想在这种情况下动态视图有一些派上用场的副作用......我只是无法弄清楚如何从代码中做到这一点。

1 个答案:

答案 0 :(得分:0)

它的发生是因为您已将光标放在项目的主题字段中。 如果从主题字段中删除焦点,它将起作用。

是的,通过扩展动态视图突然显示主题文本是正确的,但是我应该是因为延迟或我不知道的事情。