在C#中检索Visio形状的连接点名称

时间:2011-07-13 09:11:41

标签: c# visio

我正在使用Microsoft Visio 2007和Visual C#。 我有一些形状的模具。模板中每个主形状的每个连接点都有一个名称。如何在C#中获取这些名称?

我需要一种方法来区分形状的连接点,我认为为每个连接点指定一个名称是最简单的。

P.S。 我将名称分配给主形状的所谓“ShapeSheet”中的连接点,即可以看到连接点坐标的相同位置。

2 个答案:

答案 0 :(得分:3)

以下示例使用Cell Indices循环连接点行中的所有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 :(得分:1)

给定Shape对象,您可以使用Cell属性获取连接点行的X Cells。如果您使用PIA,可以拨打这样的电话:

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

从这个Cell对象中,您可以访问Connection point Row的其余部分。

如果您使用的是不同的本地化版本的Visio,或者您计划本地化您的应用程序,则应调查CellsCellsU之间的区别。