如何在visio中找到包含的形状?

时间:2015-10-19 23:08:00

标签: vb.net visio

有没有办法使用VB.NET找出Visio中包含的形状?示例 - 有一个矩形,其中有一个圆圈。如果用户选择一个圆圈,是否可以在代码中查找/获取包含的矩形?

我现在解决这个问题的方法是让用户选择矩形,循环选择的形状,获取矩形的属性,然后取消选择矩形。最终目标是重复矩形内的形状以填充矩形。

有更好的方法吗?

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:0)

Parent属性将告诉您哪种形状包含其他形状。如果形状不是组的一部分,则Parent将是父页面(实际上是父页面的PageSheet)。

ContainingShape属性告诉您分组形状的最高级父形状。因此,如果形状被深度分组为n级,则ContainingShape将告诉您根形状。

答案 1 :(得分:0)

您可以使用SpatialSearch方法。 也就是说,如果未对形状进行分组,则Visio需要分析绘图以查找相关形状。请注意,此方法比分组慢一点,然后使用Parent属性。

您还可以考虑使用容器。容器形状是特殊类型的形状,包含其他形状,易于API获取成员/父母。 Read more about container shapes here。意思是,不要使用普通的“矩形”来“分组”形状,而是使用“容器”形状。它有很多不错的功能。