2015-10-19 36 views
0

有沒有辦法找到使用VB.NET在Visio中包含的形狀?例子 - 有一個矩形,它內部是一個圓。如果用戶選擇了一個圓圈,是否可以在代碼中查找/獲取包含矩形?如何在visio中找到包含的形狀?

我現在正在解決這個問題的方式是要求用戶選擇矩形,循環選定的形狀,獲得矩形的屬性,然後取消選擇矩形。最終目標是重複矩形內的形狀以填充矩形。

有沒有更好的方法來做到這一點?

任何幫助將是偉大的!

回答

0

Parent屬性將告訴你哪個形狀包含另一個形狀。如果形狀不是一個組的一部分,那麼Parent將成爲父頁面(實際上是父頁面的PageSheet)。

ContainingShape屬性告訴您分組形狀的最高級父形狀。因此,如果一個形狀分爲n層深,ContainingShape會告訴你根形狀。

+0

謝謝!問題在於矩形和它內部的控件沒有分組。但是,我不希望用戶將它們分組。這將是一個額外的步驟,也很煩人。 –

0

您可以使用SpatialSearch方法。 也就是說,如果形狀未分組,則Visio需要分析圖形以查找相關形狀。請注意,此方法比分組稍慢,然後使用Parent屬性。

你也可以考慮使用容器。容器形狀是特殊類型的形狀以包含其他形狀,使用簡單的API獲取成員/父母。 Read more about container shapes here。意思是,不要使用簡單的「矩形」來「分組」形狀,而是使用「容器」形狀。它有很多很好的功能。

+0

猜猜我做了什麼?我將一個矩形拖到我的模板上,然後將該矩形重命名爲「myrectangle」。然後我通過它的名字得到它的代碼。 –