2013-07-22 2 views
2

Я хотел бы добавить ярлыки в документ Word, в частности, в поле. Я видел, что такие вещи, как сборщики дат и комбинированные поля, могут быть добавлены в документ, но я ничего не вижу за то, что мне нужно.Добавление элемента управления WinForm в документ Word с использованием VSTO

я могу получить объект ControlCollection через:

Globals.Factory.GetVstoObject(myApplication.ActiveDocument).Controls 

но нет методов для добавления меток.

Есть ли альтернативные методы для добавления меток в документ с использованием VSTO?

[EDIT]

Так мне удалось вставить WinForm ярлыки, однако это происходит крайне медленно, что подтверждается в этом посте:

http://connect.microsoft.com/VisualStudio/feedback/details/277090/adding-winform-controls-to-a-vsto-word-document-is-extremely-slow

Так что я до сих пор ищут альтернативы. Я не могу найти никаких подобных методам ContentControls, как было предложено в приведенном выше потоке.

+0

Что вы ищете, что 'ActiveDocument.ContentControls.Add (wdContentControlText)' не делает? –

+0

Так что я хочу, чтобы иметь возможность помещать ярлык в документ, не сдвигая ничего. У меня также нет свободы размещения wdContentControlText в таких местах, как маржа. – JessMcintosh

+0

Можете ли вы вставить комментарий, а затем вставить текстовый элемент управления в комментарий? –

ответ

0

Таким образом, решение, на котором я остановился, состоял в использовании форм Word. В приведенном ниже фрагменте кода показано, как добавить форму ярлыка в документ.

Shape shape = 
    doc.Shapes.AddLabel(Office.MsoTextOrientation.msoTextOrientationHorizontal, 
                     left, 
                      top, 
                     width, 
                     height, 
                     range); 

Процесс добавления нескольких меток не в коем случае не молниеносно, но значительно быстрее, чем добавление элементов управления Winform к документу. Формы дают вам возможность разместить его везде, где вы хотите на странице, что-то, что ContentControls не предлагает.

Смежные вопросы