/// <summary>
        /// Finalizes editing
        /// </summary>
        public void FinalizeEditMode()
        {
            if (EditModeItem == null)
            {
                return;
            }

            WeekPlannerItem itemBuffer = _editModeItem;

            _editModeItem = null;

            itemBuffer.Subject = TextBox.Text.Trim();

            if (TextBox != null)
            {
                TextBox.Visible = false;
                Controls.Remove(TextBox);
                TextBox.Dispose();
            }

            if (_editModeItem != null)
            {
                Invalidate();
            }

            planner.OnItemTextEdited(new WeekPlannerItemEventArgs(itemBuffer));

            _textBox = null;

            if (State == PlannerState.EditingItemText)
            {
                SetState(PlannerState.Idle);
            }
        }
        /// <summary>
        /// Activates the edit mode on the specified item
        /// </summary>
        /// <param name="item"></param>
        public void ActivateEditMode(WeekPlannerItem item)
        {
            _editModeItem      = item;
            TextBox            = new CalendarTextBox(this);
            TextBox.KeyDown   += TextBox_KeyDown;
            TextBox.LostFocus += TextBox_LostFocus;
            TextBox.Font       = ItemTextFont;
            Rectangle r = item.Rectangle;

            r.Location = r.Location + new Size(AutoScrollPosition);

            r.Inflate(-2, -2);
            TextBox.Bounds      = r;
            TextBox.BorderStyle = BorderStyle.None;
            TextBox.Text        = item.Subject;
            TextBox.Multiline   = true;

            Controls.Add(TextBox);
            TextBox.Visible = true;
            TextBox.Focus();
            TextBox.SelectionStart = TextBox.Text.Length;

            SetState(PlannerState.EditingItemText);
        }