在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)
{
}
}
}