Im ищет способ вставки формы MS 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;
Место, где форма получает вставлен жестко закодировано:
Это может быть видно из 2-го и 3-го параметров AddShape()
метод:
170 = положение измеряется в точках к левому краю Автоформы
200 = положение, измеренной в точках к верхнему краю Автоформы
Я изучил свойства и методы моего объекта Range, но не могу найти ни одного, в котором хранятся требуемые значения позиции.
Я попытался это уже, это не work.The форма еще вставлена в том же месте –
Я обновил свой ответ с некоторой информацией, которую я нашел на форумах Microsoft. –
Я также столкнулся с этим сообщением в msdn - http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/53d9baff-c10c-4655-822a-4c7a1b0fa885/ Однако значения слева и сверху всегда нужно увеличить на 70, иначе форма будет вставлена на несколько см выше и слева от курсора ... Это очень странно, и я не совсем уверен, почему это нужно сделать, но похоже, что это работает. Спасибо для усилий, отмечая, как ответили –