我正在使用Microsoft Visio 2007和Visual C#。 我有一些形状的模具。模板中每个主图形的每个连接点都有一个名称。我如何在C#中获取这些名称?在C中检索Visio形状的连接点名称#
我需要一种方法来区分形状的连接点,我认为给每个连接点分配一个名称是最简单的一个。
P.S. 我将名称分配给主形状的所谓“ShapeSheet”中的连接点,即可以看到连接点坐标的相同位置。
我正在使用Microsoft Visio 2007和Visual C#。 我有一些形状的模具。模板中每个主图形的每个连接点都有一个名称。我如何在C#中获取这些名称?在C中检索Visio形状的连接点名称#
我需要一种方法来区分形状的连接点,我认为给每个连接点分配一个名称是最简单的一个。
P.S. 我将名称分配给主形状的所谓“ShapeSheet”中的连接点,即可以看到连接点坐标的相同位置。
以下示例使用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;
}
给定一个Shape对象,您可以使用Cells属性获取连接点行的X Cell。如果您使用的是PIA可以使这样一个电话:
Visio.Shape shape ; // get the shape
Visio.Cell cell = shape.get_Cells("Connections.MyName.X");
从这个Cell对象,您可以访问连接点行的其余部分。
如果您使用的是不同的本地化版本的Visio,或者您计划本地化您的应用程序,则应该调查Cells和CellsU之间的差异。
非常感谢您的回答。我没有使用PIA。无论如何,我想要做的是检索我与我的形状的每个连接点相关联的名称。如果我正确理解你写的是: 1 - 得到一个形状 2 - 获取单元格“MyName.x” 我不知道“先验”什么是“MyName.x”... 我是寻找一种方法来检索所有这些名字。 谢谢;) – sciarp
谢谢你的好例子;) – sciarp