我正在爲我正在做實習的公司製作一個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) { }
}
}
}