注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

AutoCAD中的事件处理(四)  

2010-12-12 10:15:19|  分类: ObjectARX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

处理Document事件

文档事件对应AutoCAD中的文档窗口,文档事件只和它关联的文档建立联系,因此如果文档事件需要在每个文档中注册,必须使用DocumentCollection对象的DocumentCreated事件来注册对每一个打开或创建的文档进行事件的注册。

下面是一些常见的事件及触发事件的说明

事件

说明

BeginDocumentClose

当收到关闭文档的请求时触发

CloseAborted

当试图放弃关闭文档时触发

CloseWillStart

BeginDocumentClose已被触发,并在文档关闭前触发

CommandCancelled

命令在执行完之前被取消后触发

CommandEnded

命令执行完后触发

CommandFailed< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

命令不是由于取消而执行失败后触发

CommandWillStart

命令被提交,但在执行前触发

ImpliedSelectionChanged

当前向选择集(pickfirst selection set)发生改变后触发

UnknownCommand

当命令行中收到不可知命令后触发

下面的例子演示捕获关闭文档所触发的事件,并毫不含糊地阻止文档关闭。

[CommandMethod("reg")]

public void reg()

{

    doc.BeginDocumentClose += new DocumentBeginCloseEventHandler(doc_BeginDocumentClose);

    doc.Editor.WriteMessage("\n注册完成");

}

[CommandMethod("irreg")]

public void irreg()

{

    doc.BeginDocumentClose -= new DocumentBeginCloseEventHandler(doc_BeginDocumentClose);

    doc.Editor.WriteMessage("\n注销完成");

}

public void doc_BeginDocumentClose(object sender, DocumentBeginCloseEventArgs e)

{

    e.Veto();

}

程序的逻辑很清晰明了,但是在AutoCAD2006下测试却没有通过,在AutoCAD2008下测试通过了,不知道是不是06对.NET支持的不够完善还是托管程序的封装有问题,没有考虑到06这个版本……

  评论这张
 
阅读(1678)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016