【发布时间】:2021-05-05 04:02:01
【问题描述】:
我正在开发一个 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 文档。
- 将原始文档复制到temp文档。
- 对 temp 文档进行所有编辑(
n对其采取的操作)。 - 将 temp 文档复制回 original 文档(仅采取了一项操作,即
paste,因此我可以撤消它)。
这就是我在第二种方法中挣扎的原因:check here
【问题讨论】:
标签: c# ms-word office-addins undo-redo