首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSTO:关于VSTO实现撤消操作

VSTO:关于VSTO实现撤消操作
EN

Stack Overflow用户
提问于 2021-08-17 02:04:44
回答 1查看 99关注 0票数 0

我最近开始使用VSTO,发现如果使用代码修改Excel,就无法撤消它。找了很多地方,但没有找到合适的解决办法。你得想办法撤销它。当前的方法是在SheetSelectionChange中记录当前的选择,将其放在堆栈中,并在需要撤消时回溯。这种解决方案的缺点是,当从其他地方复制到表中时,SheetSelectionChange不听旧内容。那么如何在C#中撤消呢?感谢您的回复。

My Environment平台: PC主机: Excel操作系统: Windows10

EN

回答 1

Stack Overflow用户

发布于 2021-08-18 15:55:22

Memento模式是一种很好的撤消/重做方法。将状态对象存储在堆栈上,并在需要撤消时将其加载回。

我编写了一个C#库,它使用委托和通用堆栈实现它。这意味着您可以将其连接到现有代码,而无需编写大量自定义代码即可使用它。如果您已经有了用于保存状态的类型,以及保存和加载状态的方法,则可以只使用这些类型。

因为您已经说过,在这种情况下,使用Excel中的现有撤消堆栈不是一种选择,所以这个库可能是有用的。

https://github.com/peterdongan/UndoService

https://www.nuget.org/packages/UndoService/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68810872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档