public override void OnKeyDown(KeyEventArgs e)
{
if (e.Modifiers == 0 && e.KeyCode == Keys.Back && Text.Length > 0)
{
char last = Text[Text.Length-1];
UndoStack.Do(@do => {
if (@do)
this.Text = this.Text.Left(this.Text.Length - 1);
else
this.Text += last;
}, true);
}
}