【问题标题】:ICSharpCode.TextEditor undo/redo stateICSharpCode.TextEditor 撤消/重做状态
【发布时间】:2023-10-28 01:49:06
【问题描述】:

我正在尝试在使用 ICSharpCode.TextEditor 显示代码的自定义应用程序中实现撤消/重做功能。

TextEditor 完全支持撤消和重做。但不幸的是,该控件的文档记录很差。目前尚不清楚如何检测撤消状态的变化,因此程序可以灰显并重新启用工具栏上的撤消和重做按钮。

有什么合适的活动可以订阅吗?然后我应该使用 EnableUndo 和 EnableRedo 属性吗?

【问题讨论】:

    标签: c# .net undo-redo icsharpcode text-editor


    【解决方案1】:

    查看正在编辑的 IDocument,而不是 TextEditor。确保您正在使用IDocument 方法编辑文档。您可以使用IDocument.UndoStack.StartUndoGroupIDocument.UndoStack.EndUndoGroup 将操作组合在一起。要查看是否可以撤消,您可以检查IDocument.UndoStack 是否为空。

    【讨论】: