【问题标题】:VSTO: About VSTO implementation undo operationsVSTO:关于 VSTO 实现撤消操作
【发布时间】:2021-10-18 23:30:55
【问题描述】:

我最近开始使用VSTO,发现如果我使用代码修改了Excel,我无法撤消它。找了很多地方,但没有找到合适的解决方案。您必须弄清楚如何撤消它。当前的方法是将当前选择记录在SheetSelectionChange中,放入Stack中,需要撤消时回溯。此解决方案的缺点是SheetSelectionChange 在从其他地方复制到表中时不会收听旧内容。那么如何在 C# 中撤消?感谢您的回复。

我的环境 平台:电脑 主持人:Excel 操作系统:Windows10

【问题讨论】:

  • 我是否认为您需要在使用 Excel 时通过常规撤消操作将其撤消?
  • 抱歉,Excel 在使用 VSTO 加载项时无法使用常规撤消。@Peter

标签: c# excel vsto undo


【解决方案1】:

备忘录模式是撤消/重做的好方法。您将状态对象存储在堆栈中,并在需要撤消时将其加载回来。

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

既然你说在这种情况下使用 Excel 中现有的撤消堆栈不是你的选择,这个库可能很有用。

https://github.com/peterdongan/UndoService

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

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2010-11-24
    相关资源
    最近更新 更多