Added context menu option to delete appointments
This commit is contained in:
parent
128a45b394
commit
776d7462bf
17
Outlook2013TodoAddIn/AppointmentsControl.Designer.cs
generated
17
Outlook2013TodoAddIn/AppointmentsControl.Designer.cs
generated
@ -41,6 +41,7 @@
|
||||
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.panelCalendar = new System.Windows.Forms.Panel();
|
||||
this.apptCalendar = new Outlook2013TodoAddIn.CustomCalendar();
|
||||
this.mnuItemDeleteAppointment = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ctxMenuAppointments.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
@ -53,14 +54,15 @@
|
||||
// ctxMenuAppointments
|
||||
//
|
||||
this.ctxMenuAppointments.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.mnuItemReplyAllEmail});
|
||||
this.mnuItemReplyAllEmail,
|
||||
this.mnuItemDeleteAppointment});
|
||||
this.ctxMenuAppointments.Name = "ctxMenuAppointments";
|
||||
this.ctxMenuAppointments.Size = new System.Drawing.Size(214, 28);
|
||||
this.ctxMenuAppointments.Size = new System.Drawing.Size(225, 80);
|
||||
//
|
||||
// mnuItemReplyAllEmail
|
||||
//
|
||||
this.mnuItemReplyAllEmail.Name = "mnuItemReplyAllEmail";
|
||||
this.mnuItemReplyAllEmail.Size = new System.Drawing.Size(213, 24);
|
||||
this.mnuItemReplyAllEmail.Size = new System.Drawing.Size(224, 24);
|
||||
this.mnuItemReplyAllEmail.Text = "Reply All With Email";
|
||||
this.mnuItemReplyAllEmail.Click += new System.EventHandler(this.mnuItemReplyAllEmail_Click);
|
||||
//
|
||||
@ -181,6 +183,7 @@
|
||||
this.apptCalendar.SelectedBackColor = System.Drawing.Color.LightBlue;
|
||||
this.apptCalendar.SelectedDate = new System.DateTime(2013, 5, 2, 0, 0, 0, 0);
|
||||
this.apptCalendar.SelectedForeColor = System.Drawing.Color.Blue;
|
||||
this.apptCalendar.ShowWeekNumbers = false;
|
||||
this.apptCalendar.Size = new System.Drawing.Size(258, 230);
|
||||
this.apptCalendar.TabIndex = 1;
|
||||
this.apptCalendar.TodayBackColor = System.Drawing.Color.Blue;
|
||||
@ -189,6 +192,13 @@
|
||||
this.apptCalendar.SelectedDateChanged += new System.EventHandler(this.apptCalendar_SelectedDateChanged);
|
||||
this.apptCalendar.ConfigurationButtonClicked += new System.EventHandler(this.apptCalendar_ConfigurationButtonClicked);
|
||||
//
|
||||
// mnuItemDeleteAppointment
|
||||
//
|
||||
this.mnuItemDeleteAppointment.Name = "mnuItemDeleteAppointment";
|
||||
this.mnuItemDeleteAppointment.Size = new System.Drawing.Size(224, 24);
|
||||
this.mnuItemDeleteAppointment.Text = "Delete appointment/s";
|
||||
this.mnuItemDeleteAppointment.Click += new System.EventHandler(this.mnuItemDeleteAppointment_Click);
|
||||
//
|
||||
// AppointmentsControl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
@ -221,6 +231,7 @@
|
||||
private System.Windows.Forms.ColumnHeader columnHeader4;
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.Panel panelCalendar;
|
||||
private System.Windows.Forms.ToolStripMenuItem mnuItemDeleteAppointment;
|
||||
|
||||
|
||||
}
|
||||
|
@ -400,6 +400,8 @@ namespace Outlook2013TodoAddIn
|
||||
if (appt.IsRecurring)
|
||||
{
|
||||
FormRecurringOpen f = new FormRecurringOpen();
|
||||
f.Title = "Open Recurring Item";
|
||||
f.Message = "This is one appointment in a series. What do you want to open?";
|
||||
if (f.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (f.OpenRecurring)
|
||||
@ -457,6 +459,49 @@ namespace Outlook2013TodoAddIn
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Allows to delete the selected appointment (whether it's a recurring one or not)
|
||||
/// </summary>
|
||||
/// <param name="sender">Sender</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void mnuItemDeleteAppointment_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.lstAppointments.SelectedIndices.Count != 0)
|
||||
{
|
||||
Outlook.AppointmentItem appt = this.lstAppointments.SelectedItems[0].Tag as Outlook.AppointmentItem;
|
||||
if (appt != null)
|
||||
{
|
||||
if (appt.IsRecurring)
|
||||
{
|
||||
FormRecurringOpen f = new FormRecurringOpen();
|
||||
f.Title = "Warning: Delete Recurring Item";
|
||||
f.Message = "This is one appointment in a series. What do you want to delete?";
|
||||
if (f.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (f.OpenRecurring)
|
||||
{
|
||||
Outlook.AppointmentItem masterAppt = appt.Parent; // Get the master appointment item
|
||||
masterAppt.Delete(); // Will delete ALL instances
|
||||
}
|
||||
else
|
||||
{
|
||||
appt.Delete(); // Delete just this instance
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MessageBox.Show("Are you sure you want to delete this appointment?", "Delete appointment", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
appt.Delete(); // Delete just this instance
|
||||
}
|
||||
}
|
||||
// At the end, synchronously "refresh" appointments in case they have changed
|
||||
this.RetrieveAppointments();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Switch to the calendar view when double-clicking a date
|
||||
/// </summary>
|
||||
|
@ -106,6 +106,7 @@
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Open Recurring Item";
|
||||
this.Load += new System.EventHandler(this.FormRecurringOpen_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
|
@ -17,18 +17,40 @@ namespace Outlook2013TodoAddIn.Forms
|
||||
get { return this.rbtnAll.Checked; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To reuse the form, gets/sets the title
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// To reuse the form, gets/sets the message
|
||||
/// </summary>
|
||||
public string Message { get; set; }
|
||||
|
||||
#endregion "Properties"
|
||||
|
||||
#region "Methods"
|
||||
|
||||
/// <summary>
|
||||
/// Open the form
|
||||
/// Load the form
|
||||
/// </summary>
|
||||
public FormRecurringOpen()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Load the form
|
||||
/// </summary>
|
||||
/// <param name="sender">Sender</param>
|
||||
/// <param name="e">EventArgs</param>
|
||||
private void FormRecurringOpen_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
this.Text = this.Title;
|
||||
this.textBox1.Text = this.Message;
|
||||
}
|
||||
|
||||
#endregion "Methods"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user