如何从RichTextBox控件的撤消堆栈中删除操作?

时间:2012-11-22 19:35:23

标签: c# wpf stack richtextbox undo

似乎在Windows窗体的RichTextBox中有这个ClearUndo()方法(请参阅system.windows.forms.textboxbase.)。

我在RichTextBox Control中需要类似的东西。这是因为(正如这里提到的那样:Preventing a RichTextBox operation from being added to the control's Undo stack)每个更改都会添加到RichTextBox的撤消堆栈中。

我想覆盖OnTextChanged事件并从Uno堆栈中删除其中一些更改。我怎么能这样做?

感谢。

1 个答案:

答案 0 :(得分:11)

您可以使用以下代码为WPF ClearUndo()控件模拟RichTextBox

richTextBox.IsUndoEnabled = false;
richTextBox.IsUndoEnabled = true;

但是你无法控制Undo列表中的任何特定操作。

如果您仍想实现自己的Undo/Redo机制,最简单,最直接的方法是在每个重要文本更改中将控件的整个文本存储在数组中。但是,只有当你不打算用控件编辑大文本时,我才会建议它。