如何通过C#在MS Visio中获取组对象的详细信息

问题描述 投票:0回答:1

我有一个形状对象绘制为'组',文本为'P0',组对象包含两个其他小形状对象,文本为'P1'。

enter image description here

如何获取该组对象的详细信息,以便我可以访问所有三个形状对象的文本 - “P0”,“P1”,“P1”。任何帮助都感激不尽。

c# interop visio flowchart
1个回答
2
投票

假如说:

  • 目标形状是组形状(而不是容器)
  • 这两个子形状是该组的直接子女

然后以下工作:

//Some method to get your target shape
var shp = vApp.ActivePage.Shapes.ItemFromID[1];

shp.Characters.Text.Dump($"Group shape - ({shp.NameID})");
foreach (Visio.Shape s in shp.Shapes)
{
    s.Characters.Text.Dump($"Sub shape - ({s.NameID})");
}

注意 - Dump方法只是LINQPad中的扩展方法,但您可以将其替换为Console.WriteLine或类似方法。

上面的代码会产生类似于此的输出(我将第二个子形状的文本更改为'P2'):

enter image description here

此外,您可以直接使用Shape.Text属性,但文本中的任何字段都不会被展开。因此,要获得用户看到的全文,请使用Shape.Characters.Text

© www.soinside.com 2019 - 2024. All rights reserved.