c# - Outlook VSTO - 当我调用 appointment.Display() 时如何显示 "Invite attendees"文本框?

标签 c# outlook vsto outlook-2010 appointment

我有以下代码来弹出 outlook apptitem。效果很好,除非我单击“邀请与会者”,否则我无法在弹出窗口中看到实际的与会者文本框。当我单击 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);
    }

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

最佳答案

我认为您想要的是 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

Unlike other Microsoft Outlook objects, you cannot create this [e.g. MeetingItem] object. It is created automatically when you set the MeetingStatus property of an AppointmentItem object to olMeeting and send it to one or more users. They receive it in their inboxes as a MeetingItem.

关于c# - Outlook VSTO - 当我调用 appointment.Display() 时如何显示 "Invite attendees"文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14939999/

相关文章:

c++ - 获取 Outlook 文件夹大小

html - 使用 MSO 条件 &lt;!--[if !mso]> 时 Outlook.com 中的空 HTML 电子邮件

c# - 在VSTO Excel中,如何检测单元格中的数据?

C# JSON 反序列化 null 嵌套属性

c# - AspNet Core3 身份配置

c# - 具有条件WHERE子句的Linq查询

c# - 读取 XML 的最快/最佳方式

vba - 在 Outlook 邮件内容上捕获右键单击的文本

c# - 如何使 Excel 单元格内容显示不同的值

c# - 如何在 Excel 中保留 Excel 功能区加载项的数据