在Word中用户可以通过UndoRecord来记录一组动作,并显示在撤销菜单内。这样可以让用户一次性删除大量的操作。下面的代码是在Visual Studio 2010, Word 2010 下建立的一个示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Tools.Ribbon; using Word = Microsoft.Office.Interop.Word; using System.Windows.Forms; namespace WordAddIn9 { public partial class Ribbon1 { private void Ribbon1_Load(object sender, RibbonUIEventArgs e) { } private void button1_Click(object sender, RibbonControlEventArgs e) { Word.Application wdApp = Globals.ThisAddIn.Application; Word.Document wdDoc = wdApp.ActiveDocument; Word.UndoRecord ur = wdApp.UndoRecord; ur.StartCustomRecord("Test it"); Word.Range range = wdApp.Selection.Range; range.InsertAfter("Test it!"); range.Collapse(Word.WdCollapseDirection.wdCollapseEnd); range.Select(); range.Paragraphs.Add(); range.Paragraphs.Add(); int i = range.Paragraphs.Count; range.Paragraphs[i].Range.Text = "Hakuna Matata"; MessageBox.Show(string.Format("{0}\n{1}", ur.CustomRecordLevel, ur.IsRecordingCustomRecord)); ur.EndCustomRecord(); MessageBox.Show(string.Format("{0}\n{1}", ur.CustomRecordLevel, ur.IsRecordingCustomRecord)); } private void button2_Click(object sender, RibbonControlEventArgs e) { } } }