使用VSTO将WinForm控件添加到Word文档

时间:2013-07-22 12:49:50

标签: winforms ms-word label controls vsto

我想在我的Word文档中添加标签,特别是在边距中。我已经看到像日期选择器和组合框这样的东西可以添加到文档中,但我看不到任何关于我所追求的内容。

我可以通过以下方式获取ControlCollection对象:

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

但没有添加标签的方法。

是否有使用VSTO为文档添加标签的替代方法?

[编辑]

所以我设法插入了WinForm标签,但它非常慢,正如在这篇文章中所证实的那样:

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

所以我还在寻找其他选择。我找不到上面线程中建议的任何类似标签的ContentControl。

1 个答案:

答案 0 :(得分:0)

所以我解决的解决方案是使用Word形状。下面的代码片段显示了如何在文档中添加标签形状。

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

添加多个标签的过程绝不是闪电般快,但比将winform控件添加到文档要快得多。形状使您可以灵活地将它放在页面上的任何位置,这是ContentControls不提供的。