Получить имена точек подключения фигуры Visio в C # - PullRequest
3 голосов
/ 13 июля 2011

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

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

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

Ответы [ 2 ]

3 голосов
/ 21 июля 2011

В следующем примере используется Индексы ячеек для циклического прохождения всех ячеек X в строке Точка подключения.Свойство RowName используется для получения имени каждой строки в разделе.

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;
}
1 голос
/ 14 июля 2011

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

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

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

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

...