问题描述
我正在开发一个 MS Word 插件,所以我添加了一个触发功能的按钮:
private void button1_Click(object sender,RibbonControlEventArgs e) {
// do some actions on a word document (text - formatting - ...) here.
}
我的问题是,当函数对 word 文档执行 n
操作时,我必须单击撤消 n
次才能撤消所有按钮操作。撤消 10 或 100 次以返回原始状态(文本 - 格式 - 等),这是一种糟糕的用户体验。
是否有某种方法可以将所有按钮操作打包为撤消堆栈中的一个操作,以便我可以通过单击或 Ctrl + z
来撤消按钮效果?
重要提示:
为我完成工作的另一种方法是:
- 打开临时文档。
- 将原始文档复制到临时文档。
- 对 temp 文档进行所有编辑(对其执行
n
次操作)。 - 将temp 文档复制回原始 文档(仅执行一项操作,即
paste
,因此我可以撤消它)。
这就是我在第二种方法中挣扎的原因:check here
解决方法
这个 StackOverFlow Answer 应该为您指明正确的方向。