>>The way to go. We may need an .PrevValues[n] property array in that class, increase its dimension in each InteractiveChange, and step back in Undo - like
>>
>>This.Value=this.Undo.PrevValues[this.Undo.LastValueIndex-1]
>
>I think you'd need more than this, actually. For example, after undoing a change, you want to also change the cursor position, what text is selected, etc.
>
>I'd go with a Command class, as described in "Design Patterns."
Surely it would mean much more work than what I wrote. My design pattern is to create a skeleton first, then add the flesh :)