Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中检索Visio形状的连接点名称#_C#_Visio - Fatal编程技术网

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

C# 在C中检索Visio形状的连接点名称#,c#,visio,C#,Visio,我正在使用Microsoft Visio 2007和Visual C。 我有一个有一些形状的模板。模具中每个主控形状的每个连接点都有一个名称。这些名字怎么用C#表示 我需要一种方法来区分形状的连接点,我认为为每个连接点指定一个名称是最简单的方法 附言。 我在主图形的所谓“ShapeSheet”中为连接点指定了名称,即可以看到连接点坐标的同一位置。给定一个对象,可以使用该属性获取连接点行的X。如果您正在使用,您可以这样拨打电话: Visio.Shape shape ; // get the sha

我正在使用Microsoft Visio 2007和Visual C。 我有一个有一些形状的模板。模具中每个主控形状的每个连接点都有一个名称。这些名字怎么用C#表示

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

附言。 我在主图形的所谓“ShapeSheet”中为连接点指定了名称,即可以看到连接点坐标的同一位置。

给定一个对象,可以使用该属性获取连接点行的X。如果您正在使用,您可以这样拨打电话:

Visio.Shape shape ; // get the shape 
Visio.Cell cell = shape.get_Cells("Connections.MyName.X");            
从该单元对象可以访问连接点行的其余部分


如果您正在使用不同的本地化版本的Visio,或者您计划对应用程序进行本地化,则应调查和之间的差异。

以下示例用于循环连接点行中的所有X单元格。属性用于获取节中每一行的名称

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;
}
Visio.Shape=//获取形状
List listOfNames=新列表();
//循环通过形状中的所有连接点行。
short iRow=(short)viso.visrowIndexes.visRowConnectionPts;
当(shape.get_)存在时(
(短)Visio.vissectionindex.visSectionConnectionPts,
伊罗,
(短)0)!=0)
{
//从连接点行获取单元格。
Visio.Cell Cell=shape.get\u cellsrc(
(短)Visio.vissectionindex.visSectionConnectionPts,
伊罗,
(简称Visio.viscellindex.visCnnctX);
//询问该单元格位于哪一行。
添加(cell.RowName);
//下一排。
++伊罗;
}

非常感谢您的回答。我没有使用PIA。无论如何,我想做的是检索与形状的每个连接点关联的名称。如果我正确理解你写的是:1-得到一个形状2-得到单元格“MyName.x”我不知道“MyName.x”是什么“先验”。。。我正在寻找一种方法来检索所有这些名称。谢谢;)谢谢你给我举了一个很好的例子;)