Я создаю надстройку Word, которая позволяет пользователю выбирать текст в документе Word и нажимать кнопку на ленте, которая будет обертывать этот текст контентом Управление (богатый текст). В конечном итоге эти элементы управления содержимым будут сопоставлены с XML.VSTO Word Content Control - добавление нескольких RichTextContentControls во время выполнения
код до сих пор, как это:
public partial class Ribbon1
{
private RichTextContentControl titleRichTextControl;
private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
}
private void addTitle_Click(object sender, RibbonControlEventArgs e)
{
AddRichTextControlAtSelection();
}
private void AddRichTextControlAtSelection()
{
word.Document currentDocument = Globals.ThisAddIn.Application.ActiveDocument;
currentDocument.ActiveWindow.Selection.Range.Select();
Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
titleRichTextControl = extendedDocument.Controls.AddRichTextContentControl("titleRichTextControl");
titleRichTextControl.PlaceholderText = "Enter the title";
titleRichTextControl.Title = "Title";
titleRichTextControl.Tag = "title";
}
}
Все это хорошо, и это работает в первый раз кнопка нажата. Однако, если есть больше чем один «титул» (в данном случае), который нуждается в добавлении, и пользователь нажимает на кнопку второй раз, он выдает ошибку:
The control cannot be added because a control with the name titleRichTextControl already exists in the Controls collection.
Это понятно, почему он жалуется, но я не может думать о правильном способе перехода к нескольким щелчкам кнопки для создания нескольких элементов управления содержимым одного и того же типа (управление содержимым с большим текстовым содержимым) и с тем же именем (например, «title»).
Может кто-нибудь указать мне в правильном направлении, пожалуйста.
«я не могу думать о правильном пути» - ну, может быть, начать с «пути», например, перебирать элементы управления, выбирать существующие заголовки и думать о том, как избежать дублирования существующего названия? –