public override void Redo(TaskTableControl control)
        {
            int caret           = -1;
            int selectionLength = 0;

            if (isTyping)
            {
                caret = typingAtIndex + 1;
            }
            else if (isDeleting)
            {
                caret = deletingAtIndex;
            }
            else
            {
                caret           = replaceEndIndex;
                selectionLength = 0;
            }

            control.ManualTextChange(ActiveSheet, RowNumber, NewText, caret, selectionLength);
        }
        public override void Undo(TaskTableControl control)
        {
            int caret           = -1;
            int selectionLength = 0;

            if (isTyping)
            {
                caret = typingAtIndex;
            }
            else if (isDeleting)
            {
                caret = deleteStartedAtIndex + 1;
            }
            else
            {
                caret           = selectionStartIndex;
                selectionLength = this.selectionLength;
            }

            control.ManualTextChange(ActiveSheet, RowNumber, PreviousText, caret, selectionLength);
        }