用c#操作visio画图

要想通过.net画visio图,要先将visio的com组件导入,就是在引用中添加visio的com组件,导入玩之后就可以写代码画图了。贴个简单的示例代码,便于大家理解:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Visio = Microsoft.Office.Interop.Visio;
using AxVisOcx = AxMicrosoft.Office.Interop.VisOcx;
//using System.Web.UI.WebControls;
using Cell = Microsoft.Office.Interop.Visio.Cell;

namespace visiotest1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private static void ConnectShapes(Visio.Shape shape1, Visio.Shape shape2, Visio.Shape connector)
        {
            // get the cell from the source side of the connector

            Cell beginXCell = connector.get_CellsSRC(

            (short)Visio.VisSectionIndices.visSectionObject,

            (short)Visio.VisRowIndices.visRowXForm1D,

            (short)Visio.VisCellIndices.vis1DBeginX);

            // glue the source side of the connector to the first shape

            beginXCell.GlueTo(shape1.get_CellsSRC(

            (short)Visio.VisSectionIndices.visSectionObject,

            (short)Visio.VisRowIndices.visRowXFormOut,

            (short)Visio.VisCellIndices.visXFormPinX));

            // get the cell from the destination side of the connector

            Cell endXCell = connector.get_CellsSRC(

            (short)Visio.VisSectionIndices.visSectionObject,

            (short)Visio.VisRowIndices.visRowXForm1D,

            (short)Visio.VisCellIndices.vis1DEndX);

            // glue the destination side of the connector to the second shape

            endXCell.GlueTo(shape2.get_CellsSRC(

            (short)Visio.VisSectionIndices.visSectionObject,

            (short)Visio.VisRowIndices.visRowXFormOut,

            (short)Visio.VisCellIndices.visXFormPinX));

        }

        private void Form2_Load(object sender, EventArgs e)
        {
            axDrawingControl1.Window.Zoom = 0.5;
            axDrawingControl1.Window.ShowScrollBars = (short)Visio.VisScrollbarStates.visScrollBarBoth;
            axDrawingControl1.Window.ShowRulers = 0;
            axDrawingControl1.Window.BackgroundColor = (uint)ColorTranslator.ToOle(Color.Red);
            axDrawingControl1.Window.BackgroundColorGradient = (uint)ColorTranslator.ToOle(Color.Red);
            axDrawingControl1.Window.ZoomBehavior = Visio.VisZoomBehavior.visZoomVisioExact;
                        Visio.Page currentPage = axDrawingControl1.Document.Pages[1];
            Visio.Document currentStencil = axDrawingControl1.Document.Application.Documents.OpenEx("Basic_M.vss",
                                                                        (short)Visio.VisOpenSaveArgs.visOpenDocked);
                       Visio.Shape shape1 = currentPage.Drop(currentStencil.Masters["三角形"], 1.50, 1.50);
            Visio.Shape shape2 = currentPage.Drop(currentStencil.Masters["正方形"], 2.50, 3.50);
            Visio.Shape connector = currentPage.Drop(currentStencil.Masters["动态连接线"], 4.50, 4.50);
            ConnectShapes(shape1, shape2, connector);
            Cell arrowCell = connector.get_CellsSRC((short)Visio.VisSectionIndices.visSectionObject, (short)Visio.VisRowIndices.visRowLine, (short)Visio.VisCellIndices.visLineEndArrow);
            arrowCell.FormulaU = "5";
            connector.get_Cells("EndArrow").Formula = "=5";

        }
    }
}

  

时间: 2024-10-31 18:54:42

用c#操作visio画图的相关文章

解决LaTex中插入Visio画图有多余边框的问题

这里的Visio画图是指Visio另存为或导出的PDF格式图片.就目前而言,Visio另存为的EPS格式的图片均可使用PDF格式代替. 问题描述 这里以Visio中画一个矩形为例,如上图所示. 我们为了删除画图周围的白边,通常会使用"设计"选项卡下的"大小"按钮下的"适应绘图"按钮,如上图所示. 通过"适应绘图"自动调整后的画图就变成了如上图的样子. 这时我们再将此Visio画图保存为PDF图片,插入到LaTex中,如上图所示

visio画图ER图表和字段注释

最近年底属于验收的项目很多,大多数写文档中,数据库的设计ER图是比不可少的.下面记一下几个常用的用法.以下用的市visio版本为2007,由于菜单样式新版本可能有所不同,请对照相应功能进行操作! 1.反向工程从SQL Server导出关系图. 菜单数据库->反向工程 反向工程主界面,新建一个数据源,如果弹出了"您非管理员权限登录.无法创建或者修改 System DSN",不用理会直接跳过 创建数据源,选择用户数据源,下一步 这里面有不少数据库的连接方式,根据自己需要选择,这里选择

【JavaScript】操作Canvas画图

1.页面添加 Canvas 标签 标签内可以写文字,浏览器不支持Canvas的情况下显示, 2.js获取 Canvas 标签 3.利用js函数画图,[线][图][文字] 源:http://www.liaoxuefeng.com

visio画图——圆柱

方法一: 文件 > 形状 > 商务 > 图表和图形 > 营销形状 如下图: 方法二: 文件 > 形状 > 流程图 > 混合流程图形状 如下图: 方法三: 使用基本图形:矩形和椭圆形还有直线等,画出圆柱形,注意设置图层,最后可以直线将圆柱体中的线遮住--讲直线的颜色设置成和圆柱体的填充色一致即可. 最后,整体选中,组合成一个图形.

在VR中模拟用鼠标操作电脑并实现简单画图的小程序

(图没有录好,明天换一下) 一.概述 1.实现的基本操作是: 1)用手柄抓住黄色的方块代表手抓住鼠标. 2)通过移动手柄模拟鼠标移动,电脑屏幕上的光标跟着移动. 3)当光标移动到一个Button上时,Button高亮,离开时Button取消高亮,点击Button触发点击事件. 4)当点击Button之后,打开一个画图程序,可以用光标在颜色选择区选择一种颜色,然后在画图区根据光标的移动轨迹,画出选择颜色的光标移动路径的曲线: 2.脚本 1)ComputerController挂在代表电脑的Canv

使用 Sublime + PlantUML 高效地画图

什么是 PlantUML PlantUML 是一个画图脚本语言,用它可以快速地画出: 时序图 流程图 用例图 状态图 组件图 简单地讲,我们使用 visio 画图时需要一个一个图去画,但使用 PlantUML 只需要用文字表达出图的内容,然后就可以直接生成图片.看一个最简单的例子: Bob -> Alice : Hello, how are you Alice -> Bob : Fine, thank you, and you? demo 软件安装 这些软件全部是开源或共享软件,不存在版权问题

安卓的画图应用的构建

1.所需的控件: (1)Paint:画笔,可设置画图线条颜色,粗细,锯齿有无等,用与画图的工具: (2)Canvas:画布(需传入Bitmap对象),使用该对象可以达到自己想画的图形效果, 最后实现在位图上 如:直线,矩形,椭圆等: (3)Bitmap:位图,实现画布图形的控件: (4)ImageView:装载位图的控件: (5)触屏监听器:实现OnTouchListener完成触屏画图的响应事件及操作: 2.构建过程: (1)先定义类实现触屏监听接口(OnTouchListener) 1)要实

C# 取Visio模型信息的简易方法

最近的一个项目,要求导出Visio图纸,因为是建筑类的,所以,需要设置墙壁,门,房间等信息的参数. 拿墙壁为例,选中墙壁模型,右键属性,会弹出以下对话框. 需要设置墙长.墙壁厚度等一些列信息. 现在C#操作Visio里例子比较少,所以,花了好久,都没有看到有用的帖子,直到今天下午,在Bing里发现了一个帖子,顿时让我受益匪浅.原贴地址:http://mikeborozdin.com/post/reading-and-writing-visio-shape-information-with-c/

论文画图工具

本文总结了在windows下面为论文画图和表格的一些工具和注意事项. 1.latex插入图片应该插入eps格式而不是jpg.png这种,eps是矢量图,显示更加清晰. 2.有个叫gvedit的软件,用来画流程图.数据结构图等非常简洁方便,能够导出包括eps在内的多种格式文件,下载地址是https://graphviz.gitlab.io/download/,具体安装流程可以参见网上其它博客. 3.windows下面一般用visio画图,但是有个叫processingon的网站,可以达到了visi