有没有办法使用VB.NET找出Visio中包含的形状?示例 - 有一个矩形,其中有一个圆圈。如果用户选择一个圆圈,是否可以在代码中查找/获取包含的矩形?
我现在解决这个问题的方法是让用户选择矩形,循环选择的形状,获取矩形的属性,然后取消选择矩形。最终目标是重复矩形内的形状以填充矩形。
有更好的方法吗?
任何帮助都会很棒!
答案 0 :(得分:0)
Parent属性将告诉您哪种形状包含其他形状。如果形状不是组的一部分,则Parent将是父页面(实际上是父页面的PageSheet)。
ContainingShape属性告诉您分组形状的最高级父形状。因此,如果形状被深度分组为n级,则ContainingShape将告诉您根形状。
答案 1 :(得分:0)
您可以使用SpatialSearch
方法。
也就是说,如果未对形状进行分组,则Visio需要分析绘图以查找相关形状。请注意,此方法比分组慢一点,然后使用Parent
属性。
您还可以考虑使用容器。容器形状是特殊类型的形状,包含其他形状,易于API获取成员/父母。 Read more about container shapes here。意思是,不要使用普通的“矩形”来“分组”形状,而是使用“容器”形状。它有很多不错的功能。