我需要从功能区按钮单击打开Outlook约会项目。
var item = control.Context as Inspector;
AppointmentItem appointmentItem = item.CurrentItem as AppointmentItem;
if (appointmentItem != null)
{
if (appointmentItem.EntryID == null)
{
appointmentItem.Subject = "New Appointment";
appointmentItem.Body = "Welcome to new appointment";
}
}
它应该打开约会窗口但它给出了空引用错误,就像在这行代码“var item = control.Context as Inspector;”中一样。该项目为空。
答案 0 :(得分:0)
这是XML代码的一个示例。
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group id="MyGroup"
label="My Group">
<button
id="btnNewAppointment"
label="New Appointment"
onAction="NewAppointment"
imageMso="NewAppointment"
size="large"
screentip="New Appointment"
supertip="Create a new appointment"
/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
这是C#代码的一个例子。
public void NewAppointment(Office.IRibbonControl control)
{
try
{
Microsoft.Office.Interop.Outlook.Application app = Globals.ThisAddIn.Application;
Microsoft.Office.Interop.Outlook.AppointmentItem newAppointment = (Microsoft.Office.Interop.Outlook.AppointmentItem)
app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
newAppointment.Start = DateTime.Now.AddHours(2);
newAppointment.End = DateTime.Now.AddHours(3);
newAppointment.Location = "ConferenceRoom #2345";
newAppointment.Body = "We will discuss progress on the group project.";
newAppointment.AllDayEvent = false;
newAppointment.Subject = "Group Project";
newAppointment.Recipients.Add("Roger Harui");
Microsoft.Office.Interop.Outlook.Recipients sentTo = newAppointment.Recipients;
Microsoft.Office.Interop.Outlook.Recipient sentInvite = null;
sentInvite = sentTo.Add("Holly Holt");
sentInvite.Type = (int)Microsoft.Office.Interop.Outlook.OlMeetingRecipientType.olRequired;
sentInvite = sentTo.Add("David Junca ");
sentInvite.Type = (int)Microsoft.Office.Interop.Outlook.OlMeetingRecipientType.olOptional;
sentTo.ResolveAll();
newAppointment.Save();
newAppointment.Display(true);
}
catch (Exception ex)
{
//MessageBox.Show("The following error occurred: " + ex.Message);
}
}
以下是Microsoft How to: Programmatically Create Appointments
中的文章