C#进行Visio二次开发之知识点考核试题
本人做过多年的Visio二次开发,根据个人的经验总结及项目积累,写了一些小小的随笔文章(具体可参考《伍华聪的Visio二次开发文章》,上月有幸给深圳一个团队做了两天的Visio培训,当了一回客座老师,重新拉起Visio二次开发这面大旗,个人觉得这也是一次比较难忘的一次经历。
本次准备的培训,除了全面介绍Visio的相关知识和概念,还以实战开发的方式加深Visio二次开发的知识掌握,另外还通过试题来考核各个学生的掌握情况,本文主要是介绍我根据自己一直以来的Visio开发经验所得,准备的Visio二次开发试题,并提供相应的解答分析,希望大家批评指正,一起沟通交流。
虽然Visio已经在各行各业应用的很广,不过这两年来关注的博客文章,Visio二次开发方面的文章除了我零星写的一些,其他同行基本上没有文章涉及(可能是没有时间写这方面经验),虽然目前已经很少从项目上去升华、研究Visio二次开发方面的工作(除非又有一些特殊的项目合作需要)。因此,如果这方面我自己有一些新的心得或者资料,我是很乐意和大家一起分享。
例子要求:
1、打开指定的Visio及模具文件,可以保存Visio文件,导出Visio为CAD。
5、可以打开、隐藏模具文件窗口。
答案:
打开相关的Visio文件,并在图纸上右键,显示右键菜单【测试】
响应菜单操作后,界面弹出对话框,提示相关的信息,如下图。
例子关键的代码如下所示:
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Visio文件(*.vsd)|*.vsd|所有文件(*.*)|*.*";
dlg.FilterIndex = 1;
if (dlg.ShowDialog() == DialogResult.OK)
{
OpenVisio(dlg.FileName);
}
}
private void OpenVisio(string fileName)
{
VisioUtility.CloseAllStencileDocument(VisApplication);
Marshal.ReleaseComObject(VisApplication);
Marshal.ReleaseComObject(VisDocument.EventList);
Marshal.ReleaseComObject(VisDocument);
Marshal.ReleaseComObject(VisWindow);
GC.Collect();
Thread.Sleep(100);
this.axDrawingControl1.Src = fileName;
this.axDrawingControl1.Src = "";
InitEventSink(VisApplication, VisDocument);
this.axDrawingControl1.Document.Saved = true;
List<string> filePaths = GetFilePaths(gStencileFileBasePath);
foreach (string stencil in filePaths)
{
VisioUtility.OpenStencilRead(VisApplication.Documents, stencil);
}
AddContextMenu();
}
private void AddContextMenu()
{
Visio.Page page = VisioUtility.GetPage(VisDocument, "馈线图");
bool isEnable = true;
if (page != null)
{
//清除所有相关的菜单事件
page.PageSheet.DeleteSection((short)VisSectionIndices.visSectionAction);
//加入新的菜单
VisioUtility.AddRightMouseAction(page.PageSheet,
"\"测试\"",
"RUNADDONWARGS(\"QUEUEMARKEREVENT\", \"/Drawing=测试\")",
isEnable, true, false, false, true, true);
}
}
下面提供本次例子的源码,希望对大家学习研究有所帮助:Visio二次开发实战例子Demo(源码)
C#进行Visio二次开发之知识点考核试题相关推荐
- C#进行Visio二次开发之判断图纸是否有设备
判断Visio图纸上是否图纸有设备(存在图元), 有两种方法,一种是通过Window对象的SelectAll方法,在判断选择的集合是否不为空即可,如下: /// <summary ...
- Visio二次开发(二)----Shape的添加和连接
先说一说为什么我要用到Visio的二次开发,现在做的项目设计到了一些电子地图,下面的这张图片是美工画的一张地铁里面门禁布局图,而这些图在做项目的时候是需要用Visio画的,有提前画好的直接加载到项目中 ...
- C#进行Visio二次开发之图纸打印
几种打印模式 Visio的二次开发中,我们往往需要打印文档,这也是正常不过的需求,Visio的Document对象提供了下面几种打印模式: Constant Value Description vis ...
- Visio二次开发(一)----巧用Visio宏
最近做的项目中需要用到Visio二次开发,安装了Visio的SDK,还有从网上找了一些这方面的博客,Visio的SDK是全英文的,看着有点费劲,很多的东西都不知道该如何去找,不过网上的一些博客还是有一 ...
- visio二次开发___事件篇___事件分类
用visio进行二次开发,不免要用到事件.这里把visio对象模型的所有事件列出来,方便大家查找.第一个事件列表的是按事件名称字母排序的:第二个代码片段是根据分类来展示的.需要注意的是,控件本身有一些 ...
- Discuz二次开发相应知识点
"Discuz"在下文中简称"DZ".要弄DZ二次开发,必须至少具备如下技能: 1)能够理很好理解MVC构架的原理(虽然DZ不是MVC架构的) 2)扎实的PHP ...
- C#进行Visio二次开发之电气线路停电分析逻辑
停电分析,顾名思义,是对图纸进行停电的逻辑分析.在电气化线路中,一条线路是从一个电源出来,连接着很多很多的设备的,进行停电分析,有两个重要的作用:一是看图纸上的Shape元件是否连接正常,二是看哪些设 ...
- Visio二次开发Java-画图画线(java+com4j)
// 创建Visio对象IVApplication visio = ClassFactory.createApplication();//创建新的空白文档[创建一个不基于模板的新绘图]IVDocume ...
- 基于Visio的二次开发
基于Visio的二次开发 前一段时间,由于项目的需要:学习了一些关于Visio二次开发的知识:现在工具基本成形了,也算告一段落了:因此想总结一下关于Visio的二次开发的一些基本知识: 对于基于Vis ...
最新文章
- Expect 教程中文版
- Ubuntu14.04 64位上配置终端显示git分支名称
- 魔兽War3按键精灵Ⅱ(2012-9-4)
- English trip -- Review Unit1 Personal Information 个人信息
- Ollivander's Inventory(连接查询、单表双实例、子查询)
- 十分简洁的手机浏览器 lydiabox
- 五大常用算法之三:贪心算法
- mysql 隐藏中间四位_MySQL知识体系——索引
- android startanimation 回调,ScheduledThreadPoolExecutor执行莫名停止问题Android几个动画回调运行线程...
- httpservlet获取请求端IP地址
- 造车厂入局网约车 新能源低运营成本或打破“烧钱”怪圈
- 京沪无人驾驶复兴号高铁_河北高铁走到今天这一步,太不容易了...
- Motrix全能下载神器 无限制版 支持下载HTTP、磁力、FTP、BT、百度网盘等
- 找不到该项目(无法删除文件)
- 京东快递 单号查询接口 C# .net
- java绘图机器猫_canvas哆啦A梦图形代码
- ERP和MES、QAS以及APS在制造企业信息化的了解
- linux设备驱动之PCI总线概述
- 需求-MTK平台降低闪光灯电流
- pycharm快速下载第三方库
热门文章
- jdk1.6连接sqlserver2005
- libuv 中文编程指南(零)前言
- 【IBM Tivoli Identity Manager 学习文档】11 TIM设计思路介绍
- SQL Server 2005系列教学(2) SQL 服务及创建数据库
- 用 Flask 来写个轻博客 (19) — 以 Bcrypt 密文存储账户信息与实现用户登陆表单
- 实体类中用基本类型好,还是用包装类型
- 【转】【Centos】Centos下用upstart管理自己的服务程序
- 世界最成功的僵尸网络使用Fast Flux技术躲避检测
- 常用元素位置与大小总结
- 零积分下载,2014年辛星mysql教程秋季版第一本已经完工,期待您的支持