防止 RichTextBox 操作添加到控件的撤消堆栈中
以编程方式编辑 RichTextBox 控件的文本(更具体地说,修改选择字体/颜色)似乎是在控件的内置撤消堆栈中进行跟踪。有没有办法,除了编写我自己的撤消/重做“管理器”之外,来防止某些操作/操作被添加到撤消堆栈中?
Editing a RichTextBox control's text (more specifically, modifying selection font/color) programmatically seems to be tracked in the control's built in undo stack. Is there a way, short of writing my own undo/redo "manager", to prevent certain actions/operations from being added to the undo stack ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
没有坦白。最好的情况是,您可以通过发送 EM_SETUNDOLIMIT 两次来完全刷新撤消堆栈。 EM_SETTEXTEX 提供与 ST_DEFAULT 标志相同的选项。肯定不是你想要的。看看 ScintillaNET 的真正编辑器。
No cando. At best you can flush the undo stack completely by sending EM_SETUNDOLIMIT twice. EM_SETTEXTEX offers the same option with the ST_DEFAULT flag. Surely not what you want. Look at ScintillaNET for a real editor.
如果您在搜索 WPF c# 答案时来到这里,那么您在这里有一个很好的答案 已回答
If you came here when searching for a WPF c# answer you have a good one here Answered
实际上,您可以通过实现一些 ITextDocument 接口并将 tomSuspend 和 tomResume 作为计数参数发送给 Undo 处理程序来轻松完成此操作。
Actually you can easily do this by implementing some of the ITextDocument interface and sending tomSuspend and tomResume as a count argument to the Undo handler.