|
处理Document事件
文档事件对应AutoCAD中的文档窗口,文档事件只和它关联的文档建立联系,因此如果文档事件需要在每个文档中注册,必须使用DocumentCollection对象的DocumentCreated事件来注册对每一个打开或创建的文档进行事件的注册。
下面是一些常见的事件及触发事件的说明
事件
说明
BeginDocumentClose
当收到关闭文档的请求时触发
CloseAborted
当试图放弃关闭文档时触发
CloseWillStart
当BeginDocumentClose已被触发,并在文档关闭前触发
CommandCancelled
命令在执行完之前被取消后触发
CommandEnded
命令执行完后触发
转自:http://379910987.blog.163.com
CommandFailed< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-comundefinedfficeundefinedffice" />
命令不是由于取消而执行失败后触发
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这个版本……
转自:http://379910987.blog.163.com/
|
|