微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#RichTextBox:高亮显示+撤消

如何解决C#RichTextBox:高亮显示+撤消

| 我正在用语法突出显示一个简单的xhtml编辑器。 问题在于,在richtextBox撤消历史记录中,所有内容都已存储。甚至我突出的变化。 我已经发现,如果以编程方式更改RichtextBox,则存在一个
richtextBox.UndoActionName
,它应为\“ UnkNown \”。所以我在按下ctrl + z时尝试了类似的方法
while(richtextBox.CanUndo && richtextBox.UndoActionName == \"UnkNown\"){
    richtextBox.Undo();
}
它只是选择了我的整个文本,实际上并没有撤消任何操作(一直循环播放,直到我停止它为止)。 因此,我的问题是我是否需要自己在某个地方指定undoactionname,还是可以更改RichtextBox以仅记录键入的撤消历史记录? 谢谢。 编辑:如果可以在我突出显示或以某种方式排除或使用未知名称进行操作时将消息发送到richtextBox停止记录撤消历史记录,那就太好了,有什么办法吗? 编辑2:好吧,我这样做很愚蠢,我将整个文本存储在链接列表中,重做时,我清除richtextBox并用列表中的最后一项填充它,然后重新突出显示。也许这可以帮助任何人     

解决方法

问题是您正在尝试撤消上一个动作,这将是对下一个操作的撤消,因此它将继续这样做。 尝试这个:
while(richtextbox.CanUndo) {
  richtextbox.Undo();
  // Clear the undo buffer to prevent last action from being
  richtextbox.ClearUndo();
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。