Получение имен точек подключения фигуры Visio в C#

Я работаю с Microsoft Visio 2007 и Visual C#. У меня есть трафарет с некоторыми формами. Каждая точка соединения каждой эталонной фигуры в трафарете имеет имя. Как я могу получить эти имена в С#?

Мне нужен способ различать точки соединения формы, и я подумал, что присвоить имя каждой точке соединения было бы самым простым.

P.S. Я присвоил имя точкам соединения в так называемом "ShapeSheet" мастер-шейпа, т.е. там же, где можно увидеть координаты точек соединения.


person sciarp    schedule 13.07.2011    source источник


Ответы (2)


В следующем примере индексы ячеек перебрать все ячейки X в строке Connection Point. Для получения имя каждой строки в разделе.

Visio.Shape shape = // get the shape

List<string> listOfNames = new List<string>();

// Loop through all the connection point rows in the shape.
short iRow = (short) Visio.VisRowIndices.visRowConnectionPts;
while (shape.get_RowExists(
    (short) Visio.VisSectionIndices.visSectionConnectionPts, 
    iRow, 
    (short) 0) != 0)
{
    // Get a cell from the connection point row.
    Visio.Cell cell = shape.get_CellsSRC(
        (short) Visio.VisSectionIndices.visSectionConnectionPts,
        iRow,
        (short) Visio.VisCellIndices.visCnnctX);

    // Ask the cell what row it is in.
    listOfNames.Add(cell.RowName);

    // Next row.
    ++iRow;
}
person Community    schedule 21.07.2011
comment
Спасибо за отличный пример ;) - person sciarp; 21.07.2011

Имея объект Shape, вы можете получить X Cell точки подключения строку с помощью свойства Cells. Если вы используете PIA, вы можете позвонить нравится:

Visio.Shape shape ; // get the shape 
Visio.Cell cell = shape.get_Cells("Connections.MyName.X");            

Из этого объекта Cell вы можете получить доступ к остальной части строки точки подключения.

Если вы используете разные локализованные версии Visio или планируете локализовать свое приложение, вам следует изучить разницу между Ячейки и CellsU.

person Community    schedule 14.07.2011
comment
Большое спасибо за ваш ответ. Я не использую PIA. В любом случае, что я хотел бы сделать, так это получить имя, которое я связал с каждой точкой соединения моей формы. Если я правильно понимаю, что вы пишете, это: 1 - получить форму 2 - получить ячейку MyName.x Я не знаю априори, что такое MyName.x... Я ищу способ получить все эти имена. Благодарность ;) - person sciarp; 19.07.2011