Outlook VSTO - 当我调用约会.Display() 时如何显示“邀请与会者”文本框?

Posted

技术标签:

【中文标题】Outlook VSTO - 当我调用约会.Display() 时如何显示“邀请与会者”文本框?【英文标题】:Outlook VSTO - how to show the "Invite attendees" textbox when I call appointment.Display()? 【发布时间】:2013-02-03 02:26:43 【问题描述】:

我有以下代码来弹出一个 Outlook 应用程序。它工作得很好,除非我点击“邀请与会者”,否则我无法在弹出窗口中看到实际的与会者文本框。当我单击 appt 项目上的该按钮时,它确实显示了我在下面填充的人员列表。

 public void BookAppt(List<string> rooms, DateTime startTime, DateTime endTime)
    
        var PacktAppointmentItem = (Microsoft.Office.Interop.Outlook.AppointmentItem)Globals.ThisAddIn.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
        PacktAppointmentItem.Subject = "Test Meeting";
        PacktAppointmentItem.Location = "My Room";
        PacktAppointmentItem.Start = startTime;
        PacktAppointmentItem.End = endTime;
        PacktAppointmentItem.Body = "Test Meeting";
        PacktAppointmentItem.RequiredAttendees = String.Join(";", rooms);
        PacktAppointmentItem.Display(true);
    

有没有什么方法可以自动显示与会者文本框而无需单击“邀请与会者”按钮?另外,是否有任何方式以编程方式调用“检查姓名”以便解决与会者?

【问题讨论】:

您可以通过在AppointmentItem.Recipients 对象上调用ResolveAll() 方法来“检查名称”。虽然我不知道问题的另一部分的答案,但也许 FormProperties 对象与此有关。 @John Willernse - 感谢 ResolveAll() 的帮助。 .希望有人会带着第一个问题回来(我认为它可能是显示方法上的一个参数,但在那里或任何属性上都找不到它 【参考方案1】:

我认为您想要的是 MeetingItem,而不是 AppointmentItem。你不能直接创建一个 MeetingItem,但你几乎在任何地方:只需在你的代码中添加这一行:

PacktAppointmentItem.MeetingStatus = Outlook.OlMeetingStatus.olMeeting;

所以你的最终代码应该是这样的

var PacktAppointmentItem = (Microsoft.Office.Interop.Outlook.AppointmentItem)Globals.ThisAddIn.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
PacktAppointmentItem.Subject = "Test Meeting";
PacktAppointmentItem.Location = "My Room";
PacktAppointmentItem.Start = DateTime.Now;
PacktAppointmentItem.MeetingStatus = Outlook.OlMeetingStatus.olMeeting;
PacktAppointmentItem.End = DateTime.Now.AddHours(1.0);
PacktAppointmentItem.Body = "Test Meeting";
PacktAppointmentItem.RequiredAttendees = String.Join(";", rooms);
PacktAppointmentItem.Display(true);

背景简介:来自微软:http://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.outlook.meetingitem(v=office.14).aspx

与其他 Microsoft Outlook 对象不同,您无法创建此对象 [例如 会议项目] 对象。设置时会自动创建 将 AppointmentItem 对象的 MeetingStatus 属性设置为 olMeeting 和 将其发送给一个或多个用户。他们在收件箱中收到它作为 会议项目。

【讨论】:

感谢 Magnum 的解决方案。 .我知道必须有办法:)

以上是关于Outlook VSTO - 当我调用约会.Display() 时如何显示“邀请与会者”文本框?的主要内容,如果未能解决你的问题,请参考以下文章

VSTO Outlook 约会事件 (VB.NET)

带有 FormRegion 的 VSTO Outlook 约会 - 删除收件人时保存异常

VSTO Outlook 插件:当用户拖放定期约会时,无法在 Item_Change 事件中获取 AppointmentItem

Outlook 约会替换表单区域的功能区页面已禁用

Outlook VSTO插件在Outlook中不可见。

在 Outlook VSTO 插件中调用了 SelectionChane,但 ActiveExplorer().Selection.Count = 0: