我正在为我正在做实习的公司制作一个MS-Word插件。VSTO Word插件:内容控制嵌套
我已经创建了一个新的功能区,其中有很多SplitButtons
和Buttons
。 现在我想要做的是当你点击一个按钮的内容控件将添加到word文档。 这适用于普通内容控件。这些内容控件具有标签,如绑定到XML文件中元素的“sport/basketball/player/name”。
private void addSimpleContentControl(String tag, String placeholder)
{
try
{
contentControlPlain = Globals.ThisAddIn.Application.ActiveDocument.ContentControls.Add(Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlText);
contentControlPlain.Tag = tag;
contentControlPlain.SetPlaceholderText(null, null, placeholder);
}
catch (COMException) { }
}
现在让我们来谈谈我的问题。我的一些元素可能会出现一次以上。所以我想创建的是一个Rich Content控件,它包含多个Plain内容控件。
所以我有一个SplitButton
“玩家”包含“名”,“球衣号码”,“位置”,...按钮 当点击下面的按钮中的一个我第一次检查,如果富文本控制具有特定的名称已经存在。 如果不是,我做一个并添加一个简单的内容控制它。
丰富的内容控制 - >纯文本控制 - >丰富的内容控制的结束
到目前为止好,这一切都很好,但是从目前看,我想其他纯内容控件添加到丰富的内容控制这个弹出:
“纯文本控件不能左右其他控件或XML元素插入”这里是我的代码为纯内容控件添加到丰富的内容控制。
private void addContentControlToRich(String tag, String placeholder,String title)
{
Microsoft.Office.Interop.Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
foreach (Microsoft.Office.Interop.Word.ContentControl cc in doc.ContentControls)
{
if (cc.Title == title && cc.Type == Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
{
try
{
Microsoft.Office.Interop.Word.Range rng = cc.Range;
object oRng = rng;
contentControlPlain = doc.ContentControls.Add(Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlText, ref oRng);
contentControlPlain.Tag = tag;
contentControlPlain.SetPlaceholderText(null, null, placeholder);
contentControlPlain.LockContentControl = true;
break;
}
catch (COMException) { }
}
}
}