0
我正在尋找一種方法在光標位置插入MS Word形狀。目前我有以下代碼在預定位置插入一個形狀:在光標位置插入Word形狀
Microsoft.Office.Interop.Word.Range CurrRange = Globals.ThisAddIn.Application.Selection.Range;
//Get the id of the MS Word shape to be inserted
int shapeId = (int)MsoAutoShapeType.msoShapeRoundedRectangle;
//Get the value of the name attribute from the selected tree view item
string nodeText = treeViewItem.GetAttribute("name");
//Add a new shape to the MS Word designer and set shape properties
var shape = CurrRange.Document.Shapes.AddShape(shapeId, 170, 200, 100, 20);
shape.AlternativeText = String.Format("Alt {0}", nodeText);
shape.TextFrame.ContainingRange.Text = nodeText;
shape.TextFrame.ContainingRange.Font.Size = 8;
其中形狀被插入被硬編碼的位置:
這可以從第二和的第三參數可以看出AddShape()
方法:
在點測量到自選
200 =在位置點處測量到的自選圖形的頂部邊緣的左邊緣170 =位置
我已經看過我的Range對象的屬性和方法,但似乎無法找到任何存儲我需要的位置值的地方。
我已經嘗試過這一點,它不work.The形狀仍插在同一位置 – 2011-12-20 05:19:25
我用微軟論壇上的一些信息更新了我的答案。 – 2011-12-20 14:15:59
我在msdn上也遇到過這個帖子 - http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/53d9baff-c10c-4655-822a-4c7a1b0fa885/然而,left和top值總是需要增加70,否則形狀插入光標左上方几釐米......這很奇怪,我不完全確定它爲什麼必須完成,但它確實似乎工作。謝謝爲了努力,標記爲已回答 – 2011-12-21 05:24:20