C#进行Visio开发的事件处理
在C#进行Visio的开发中,通过继承接口IVisEventProc,可以创建事件的侦听处理类,如下所示:
public sealed class EventSink2 : IVisEventProc
{
..
object IVisEventProc.VisEventProc(short eventCode, object source, int eventId,
int eventSequenceNumber, object subject, object moreInfo)
{
}
}
事件有很多类,有Application级别的,有Document级别的,有Page级别的,有Shape级别的,有Windows级别的,有Cell级别的..............,下面截取一部分事件代码看看
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtDoc + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtDel:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtCodeBefDocSave:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtCodeBefDocSaveAs:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtCodeDocDesign:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtPage + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtDel:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtPage + visEvtAdd:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtPage + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtMod:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtMaster + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtDel:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtMaster + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtMod:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtCodeCancelMasterDel:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtShape + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtDel:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtCodeShapeBeforeTextEdit:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtShape + visEvtAdd:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtShape + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtMod:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtCell + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtMod:
case (short)Microsoft.Office.Interop.Visio.VisEventCodes.
visEvtFormula + (short)Microsoft.Office.Interop.Visio.
VisEventCodes.visEvtMod:
还有很多很多..
将事件和我们的处理函数联系起来,还需要对事件进行侦听,即AddAdvise,下面列出一段如何侦听事件的代码供参考
Event newEvent = null;
EventList applicationEvents = eventApplication.EventList;
EventList documentEvents = eventDocument.EventList;
newEvent = documentEvents.AddAdvise(
(unchecked((short)VisEventCodes.visEvtAdd) + (short)VisEventCodes.visEvtShape),
(IVisEventProc)this, sink, "ShapeAdd");
newEvent = documentEvents.AddAdvise(
(short)VisEventCodes.visEvtDel + (short)VisEventCodes.visEvtShape,
(IVisEventProc)this, sink, "ShapeDelete");
newEvent = documentEvents.AddAdvise(
(short)VisEventCodes.visEvtMod + (short)VisEventCodes.visEvtCell,
(IVisEventProc)this, sink, "CellChanged");
newEvent = documentEvents.AddAdvise(
(short)VisEventCodes.visEvtCodeShapeExitTextEdit,
(IVisEventProc)this, sink, "ShapeExitedTextEdit");
newEvent = documentEvents.AddAdvise(
(short)VisEventCodes.visEvtCodeQueryCancelSelDel,
(IVisEventProc)this, sink, "QueryCancelSelectionDelete");
具体的使用,最好下载Visio2007 SDK进行学习,自己编写一些例子对事件进行处理
转载于:https://www.cnblogs.com/wuhuacong/archive/2008/02/22/1078303.html
C#进行Visio开发的事件处理相关推荐
- 微信小程序开发3——事件处理
事件处理 index.wxml <!--index.wxml--> <view bindtap="viewTapHandle"><button bin ...
- C#进行Visio二次开发之知识点考核试题
本人做过多年的Visio二次开发,根据个人的经验总结及项目积累,写了一些小小的随笔文章(具体可参考<伍华聪的Visio二次开发文章>,上月有幸给深圳一个团队做了两天的Visio培训,当了一 ...
- 基于Visio的二次开发
基于Visio的二次开发 前一段时间,由于项目的需要:学习了一些关于Visio二次开发的知识:现在工具基本成形了,也算告一段落了:因此想总结一下关于Visio的二次开发的一些基本知识: 对于基于Vis ...
- SharePoint Designer 2013 和 Visio 2013 中的工作流开发
了解如何使用 Visio 2013 和 SharePoint Designer 2013 来创建工作流并将其发布到 SharePoint 2013 网站而无需任何代码. 上次修改时间: 2015年3月 ...
- SharePoint 2010: 使用Visio Services展示SCOM数据
isio 2010 已经发布,相比过去的版本,Visio 2010以及Visio Services能够帮助我们创建更为强大的解决方案.有一个很好的例子是Visio 2010 Add-in for Sy ...
- visio wps 流程图_科研必备:几款好用的流程图工具,助力你的论文/科研绘图
写SCI论文常常会遇到一个问题--如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理.如何应用存在疑问:尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了 ...
- visio科学图形包_科学网—科研必备:几款好用的流程图工具,助力你的论文/科研绘图...
写SCI论文常常会遇到一个问题--如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理.如何应用存在疑问:尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了 ...
- visio 模具_Visio2013 自定义模具 简单公式
目前工作需要利用visio绘制配网单线图,并考虑开发高级功能.在此,记录一下学习历程和主要知识点.文章排版意在积累知识点,排版不好,凑合着看吧!全部知识点都是自己参考微软Visio 2013sdk和自 ...
- .net控件开发系列
此系列我将尽我所能写下去吧,跟大家分享学习控件开发.也希望大家对我多提意见,让我们共同进步 net控件开发系列 1.net组件开发系列(-)之 ...
最新文章
- Linux 交换空间管理和技巧
- mysql什么级别数据库_Mysql的四种隔离级别是什么
- 流量时代已亡,如何在 ROI 的魔咒下生存?
- 并行和并发有什么区别?
- Soul 网关源码阅读(六)Sofa请求处理概览
- c语言枪图形,6个变态的C语言Hello World程序[转载]
- pydicom 显示jpeg压缩图像_图像原理 jpg png tga bmp 存储格式
- 物联网定位技术超全解析
- spss因子分析结果解读_SPSS进行问卷量表信度检验(详细操作过程及结果分析)——【杏花开生物医药统计】...
- 利用mysql客户端查询UCSC数据库
- 李宏毅2022机器学习hw5
- 有测试狗狗好坏的软件吗,6个测试判断狗狗性格,胆小或凶猛一测便知,你家狗狗是哪种?...
- [转载]唐僧的亲爹究竟是谁 (2016-02-17 16:37:21)
- 如何安装Chrome扩展程序或插件
- 3DMax指定面贴图
- 卷积神经网络及其在图像处理中的应用
- Javascript读书笔记(六)函数作用域,声明提前,作用域链,闭包
- MLOps极致细节:15. Azure ML数据集的上传(Azure Workspace DataStore Upload)与注册(Azure Dataset Register)
- parrallel for matlab,[转载]MATLAB并行计算工具箱 -- Paralleln
- 基于MATLAB和python输出曼德勃罗集
热门文章
- Topic model相关文章总结
- 网络爬虫之httpclient的使用
- C++/C--unordered_map常见用法详解
- 514 - Rails
- ZZULIOJ21级新生周赛(1)——命题人:朱会东老师——2822: 探姬粉丝众多
- php jumppage加载网址,php 分页类 扩展代码
- java web购物车_java web开发——购物车功能实现
- Android备份onedrive,三星Note10正将OneDrive集成到Android相册应用中
- 软件无法连接oracle数据库,全面解析Oracle无法连接本地数据库问题
- python @修饰符_Python修饰符,返回替换了一个或多个参数的函数