I\'ve been trying to get undo and redo working in my text editor for about 3 days now. It\'s doing my head in.
I have a text box (n
You can have the RichTextBox build the undo stack for you word by word, plus keep track of the caret position, by handling one of the KeyDown-, KeyPress- or KeyUp events like this:
private void rtb_KeyDown(object sender, KeyEventArgs e)
{
// Trick to build undo stack word by word
RichTextBox rtb = (RichTextBox)sender;
if (e.KeyCode == Keys.Space)
{
this.SuspendLayout();
rtb.Undo();
rtb.Redo();
this.ResumeLayout();
}
// eztnap
}
Since the RichTextBox does the job for you, you just have to call rtb.Undo()
or rtb.Redo()
from wherever you need to.