使用C#绘制Visio,可以直接调用Shapes中的一个的图形吗
时间: 2024-02-18 16:00:26 浏览: 85
是的,您可以使用C#代码调用Shapes集合中的一个图形来绘制Visio图形。您可以使用以下代码示例来获取Shapes集合中的一个图形并将其绘制到Visio页面上:
```csharp
// 获取Visio应用程序对象
Visio.Application visioApp = new Visio.Application();
// 打开Visio文档
Visio.Document visioDoc = visioApp.Documents.Open("C:\\example.vsd");
// 获取页面对象
Visio.Page visioPage = visioDoc.Pages[1];
// 获取Shapes集合中的一个图形
Visio.Shape visioShape = visioPage.Shapes[1];
// 将图形绘制到页面上
visioShape.Draw(visioPage);
```
您可以根据需要修改此示例代码以获取Shapes集合中的不同图形并将其绘制到Visio页面上。
相关问题
C#如何操作Visio,调用Shapes中的第三个图形
要在C#中操作Visio并调用Shapes中的第三个图形,您可以使用以下代码:
```
// 创建 Visio 应用程序对象
Visio.Application visApp = new Visio.Application();
// 打开 Visio 文档
Visio.Document doc = visApp.Documents.Open("D:\\02 Work\\00 Chaos\\05 Auto_LTT_Drawing\\Test\\example.vsdx");
// 获取页面对象
Visio.Page page = doc.Pages[1];
// 获取Shapes集合中的第三个图形
Visio.Shape visioShape = page.Shapes[3];
// 将图形移动到(5, 5)的位置上
visioShape.CellsU["PinX"].FormulaU = "5 mm";
visioShape.CellsU["PinY"].FormulaU = "5 mm";
// 保存文档
doc.Save();
// 关闭应用程序
visApp.Quit();
```
以上代码中,我们通过`page.Shapes[3]`获取了Shapes集合中的第三个图形,并将其移动到了(5, 5)的位置。需要注意的是,如果Shapes集合中没有足够的图形,则会引发异常。
希望这可以帮助到您。
C#如何操作Visio,调用Shapes中的第三个图形,并放置在5,5
要操作Visio,需要使用Visio的COM对象模型。下面是一个用C#调用Visio COM对象模型,从Shapes中获取第三个图形,并将其放置在5,5的示例代码:
```csharp
using Visio = Microsoft.Office.Interop.Visio;
Visio.Application visioApp = new Visio.Application();
visioApp.Visible = true;
Visio.Document doc = visioApp.Documents.Add("");
Visio.Page page = doc.Pages[1];
Visio.Shapes shapes = page.Shapes;
Visio.Shape shape = shapes.get_ItemFromID(3);
shape.CellsU["PinX"].FormulaU = "5";
shape.CellsU["PinY"].FormulaU = "5";
```
上述代码中,我们首先创建了一个Visio应用程序实例,然后创建了一个新的文档和一个页面,接着从Shapes中获取第三个图形,并将其放置在指定的坐标点(5,5)。
需要注意的是,要运行上述示例代码,需要在项目中添加对"Microsoft.Office.Interop.Visio"的引用,并且安装Visio程序。
阅读全文