Vb.net 如何在visio中查找包含形状?

Vb.net 如何在visio中查找包含形状?,vb.net,visio,Vb.net,Visio,是否有方法使用VB.NET在Visio中查找包含的形状?示例-有一个矩形,其中有一个圆。如果用户选择一个圆,是否可以在代码中找到/获取包含该圆的矩形 我现在解决这个问题的方法是让用户选择两个矩形,循环选定的形状,获取矩形的属性,然后取消选择矩形。最终目标是在矩形内重复形状以填充矩形 有更好的方法吗 任何帮助都会很好 父属性将告诉您哪个形状包含另一个形状。如果形状不是组的一部分,则父页面将是父页面(实际上是父页面的页面页) ContainingShape属性告诉您分组形状的最高级别父形状。所以,如

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

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

有更好的方法吗


任何帮助都会很好

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

ContainingShape属性告诉您分组形状的最高级别父形状。所以,如果一个形状被分为n级,ContainingShape将告诉您根形状。

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


<>你也可以考虑使用容器。容器形状是包含其他形状的特殊形状类型,使用易于获取成员/父级的API。也就是说,不要使用普通的“矩形”来“分组”形状,而是使用“容器”形状。它有很多不错的功能。

谢谢!问题是矩形和其中的控件没有分组。但是,我不希望用户将它们分组。这将是一个额外的步骤,也很烦人。猜猜我做了什么?我将一个矩形拖到模具上,然后将该矩形重命名为“myrectangle”。然后我通过它的名字在代码中得到它。