Ms word 钩子字粘贴命令

Ms word 钩子字粘贴命令,ms-word,vsto,office-interop,Ms Word,Vsto,Office Interop,我有一个Word 2007 VSTO插件,用于创建文档模板。它允许您为循环或条件添加特殊的内容控件。内容控件绑定到自定义xml零件数据(使用内容控件ID作为引用) 我需要允许用户复制和粘贴抄送。Word会自动更改其ID,因此我丢失了对自定义xml部分的引用 有没有办法钩住Word paste命令并访问粘贴的范围-内容控件?我不确定这是否对您有帮助, 在项目中连接事件XMLSelectionChange。此事件具有以下参数 (Selection Sel, XMLNode OldXMLNode, X

我有一个Word 2007 VSTO插件,用于创建文档模板。它允许您为循环或条件添加特殊的内容控件。内容控件绑定到自定义xml零件数据(使用内容控件ID作为引用)

我需要允许用户复制和粘贴抄送。Word会自动更改其ID,因此我丢失了对自定义xml部分的引用


有没有办法钩住Word paste命令并访问粘贴的范围-内容控件?

我不确定这是否对您有帮助, 在项目中连接事件XMLSelectionChange。此事件具有以下参数

(Selection Sel, XMLNode OldXMLNode, XMLNode NewXMLNode, ref int Reason)

Sel.Range应该给出您要查找的范围。

您也可以使用
文档。在文档的VstoObject上选择Change
事件,您可以使用
Microsoft.Office.Tools.Word.Document.GetVstoObject()来获取它。

例如:

using WordTools = Microsoft.Office.Tools.Word;

WordTools.Document vstoDocument = Microsoft.Office.Tools.Word.Document.GetVstoObject(Globals.ThisAddIn.Application.ActiveDocument);
vstoDocument.SelectionChange += new WordTools.SelectionEventHandler(Document_SelectionChange);

private void Document_SelectionChange(object sender, WordTools.SelectionEventArgs e)
{
    if (e.Selection.Range.Text != null)
    {
        // your code
    }
}

你好,如果我的回答对你有帮助的话&请回答正确