0

我有以下代码,用于在运行时修改 word 文档中的文本框。

这是在 .NET Windows 窗体应用程序中。

var oShapes = oWord.ActiveDocument.Shapes; 
var titleShape = oShapes["Title"];

var myWord = new Microsoft.Office.Interop.Word.Application();

titleShape.Height = myWord.InchesToPoints(1.75F);
titleShape.Width = myWord.InchesToPoints(0.45F);
titleShape.RelativeHorizontalPosition = Microsoft.Office.Interop.Word.WdRelativeHorizontalPosition;
titleShape.RelativeVerticalPosition =  Microsoft.Office.Interop.Word.WdRelativeVerticalPosition();
titleShape.Left = 4.35F;
titleShape.Top = 17.5F;
titleShape.TextFrame.WordWrap = 0;
titleShape.LockAnchor = 1;

var sTitle =string.Empty;

titleShape.TextFrame.TextRange.Text = DocumentType; // sTitle;
titleShape.TextFrame.AutoSize=-1;

不幸的是,我一定是弄错了,因为Microsoft.Office.Interop.Word.WdRelativeHorizo​​ntalPosition; 在 VS 2010 中显示为错误(也在下面的行中。

通过 Office Interop 在 c# 中使用类似单词枚举常量的正确方法是什么?

4

3 回答 3

1

问题是您正在调用该属性,就好像它是一种方法一样。删除最后的括号,你应该完成。

titleShape.RelativeVerticalPosition =  Microsoft.Office.Interop.Word.WdRelativeVerticalPosition;

希望这可以帮助。

于 2013-11-05T15:18:33.423 回答
1

删除括号:

titleShape.RelativeVerticalPosition =  Microsoft.Office.Interop.Word.WdRelativeVerticalPosition;

你也没有说编译错误是什么。

于 2013-11-05T15:16:14.460 回答
0

我找到了,我是在调用枚举名称,而不是枚举常量。

所以Microsoft.Office.Interop.Word.WdRelativeHorizontalPosition

应该

Microsoft.Office.Interop.Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage;

(加上我使用括号认为这是问题所在)

于 2013-11-05T15:25:13.333 回答