我需要创建一个Visio文档并从.vss文件中添加形状。我可以添加简单的形状并添加文本,没有任何问题。但是当我尝试添加一个由4个矩形组合在一起的形状(我相信它被称为大师)并为每个形状添加文本时,我遇到了问题。
我想在组中的每个矩形形状中填充值(添加文本)。将此主服务器放入Visio页面后,它就会显示为一个组。我可以使用Ungroup()
方法取消组合每个矩形。但我不知道如何从这个组中获取每个元素。有没有办法可以唯一地识别这个组中的每个元素?或者遍历组并找到每个元素?请看下面的代码,到目前为止我做了什么。
Visio.Document doc = application.Documents.Add(@"\example.vst");
Visio.Page page = application.Documents[1].Pages[1];
Visio.Documents vdocs = application.Documents;
Visio.Document visioStencil = vdocs.OpenEx(@"\sample.vss", (short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked);
Visio.Page visioPage = application.ActivePage;
Visio.Shapes visShapes = visioPage.Shapes;
//the following shape in the setensil is the group of 4 rectanle I was referring
Visio.Master visioConvMaster = visioStencil.Masters.get_ItemU(@"Conveyance");
Visio.Shape visioConvShape = visioPage.Drop(visioConvMaster, 4.25, 5.5);
//try to ungroup to get each
visioConvShape.Ungroup();
知道我应该如何进一步行动吗?我是微软技术的新手。我正在使用Visual Studio 2012专业版和Visio 2010 Premium。
提前致谢。
答案 0 :(得分:1)
Visio.Shape对象具有属性“Shapes”,它是子形状的集合。不要取消组合;首先,遍历Shapes集合(visioConvShape.Shapes [0],visioConvShape.Shapes [1]等)然后如果你需要取消组合,那么在你至少执行了你需要的任何动作或识别它们之后这样做和/或赋予它们可重复使用的名称。