我正在尝试在使用ICSharpCode.TextEditor显示代码的自定义应用程序中实现撤消/重做功能。
TextEditor完全支持撤消和重做。但不幸的是,控制记录很差。目前尚不清楚如何检测撤消状态的变化,因此程序可以灰显并重新启用工具栏上的撤消和重做按钮。
我可以订阅任何合适的活动吗?我应该使用EnableUndo和EnableRedo属性吗?
答案 0 :(得分:4)
查看正在修改的IDocument
,而不是TextEditor
。确保使用IDocument
方法编辑文档。您可以使用IDocument.UndoStack.StartUndoGroup
和IDocument.UndoStack.EndUndoGroup
将操作组合在一起。要查看是否有可能,请检查IDocument.UndoStack
是否为空。