在c#中检索Visio形状的连接点名称
本文关键字:连接点 检索 Visio | 更新日期: 2023-09-27 18:01:51
我正在使用Microsoft Visio 2007和Visual c#。我有一个有一些形状的模板。模板中每个主形状的每个连接点都有一个名称。如何在c#中获得这些名称?
我需要一种方法来区分一个形状的连接点,我认为给每个连接点命名是最简单的方法。
注:我在主形状的所谓的"ShapeSheet"中为连接点分配了名称,即可以看到连接点坐标的相同位置。
下面的示例使用Cell Indices循环遍历Connection Point行中的所有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;
}
给定一个Shape对象,您可以使用Cells属性获得连接点行的X单元格。如果您正在使用PIA,您可以像这样进行呼叫:
Visio.Shape shape ; // get the shape
Visio.Cell cell = shape.get_Cells("Connections.MyName.X");
从这个Cell对象中,您可以访问连接点行的其余部分。
如果您正在使用不同的Visio本地化版本,或者您计划本地化您的应用程序,您应该调查cell和CellsU之间的区别。