我最近开始使用VSTO,发现如果使用代码修改Excel,就无法撤消它。找了很多地方,但没有找到合适的解决办法。你得想办法撤销它。当前的方法是在SheetSelectionChange中记录当前的选择,将其放在堆栈中,并在需要撤消时回溯。这种解决方案的缺点是,当从其他地方复制到表中时,SheetSelectionChange不听旧内容。那么如何在C#中撤消呢?感谢您的回复。
My Environment平台: PC主机: Excel操作系统: Windows10
发布于 2021-08-18 15:55:22
Memento模式是一种很好的撤消/重做方法。将状态对象存储在堆栈上,并在需要撤消时将其加载回。
我编写了一个C#库,它使用委托和通用堆栈实现它。这意味着您可以将其连接到现有代码,而无需编写大量自定义代码即可使用它。如果您已经有了用于保存状态的类型,以及保存和加载状态的方法,则可以只使用这些类型。
因为您已经说过,在这种情况下,使用Excel中的现有撤消堆栈不是一种选择,所以这个库可能是有用的。
https://stackoverflow.com/questions/68810872
复制相似问题