|
处理Application事件
Application代表了AutoCAD的程序窗口,因此这类事件主要针对AutoCAD该程序,这类事件除非AutoCAD关系或者显式的注销,否则将一直处于注册状态。
下面是一些常见的事件及触发事件的说明
事件
说明
BeginCustomizationMode
AutoCAD进入自定义模式前触发
BeginDoubleClick
双击鼠标后触发
BeginQuit
AutoCAD准备退出前触发
DisplayingCustomizeDialog
在自定义对话框显示前触发
DisplayingOptionDialog< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-comundefinedfficeundefinedffice" />
在选项对话框被显示前触发
转自:http://379910987.blog.163.com
EndCustomizationMode
当AutoCAD退出自定义模式后触发
EnterModal
在一个模式对话框被打开之前触发
Idle
当程序空闲的时候触发
LeaveModal
当一个有模式对话框被关闭之后触发
QuitAborted
当放弃退出程序时触发
QuitWillStart
当BeginQuit被触发后并在准备关闭程序前触发
SystemVariableChanged
系统变量被改变后触发
SystemVariableChanging
正试图改变系统变量前触发
下面是一个例子:- [CommandMethod("reg")]
- public void reg()
- {
- Application.BeginQuit+=new EventHandler(Application_BeginQuit);
- }
- public void Application_BeginQuit(object sender, EventArgs e)
- {
- Application.ShowAlertDialog("你要退出系统!");
- }
复制代码 执行reg命令后,将会注册一个事件,当AutoCAD准备退出系统是,就会执行Application_BeginQuit方法,弹出一个对话框,虽然确定之后还是会退出系统,这似乎并不能改变关闭程序的作用,这里做一点解释。Application_BeginQuit的第二个e的类型为EventArgs,这是事件参数的基本类型,在AutoCAD1006中似乎没有和BeginQuit事件专门对应的事件参数类,所以使用的是C#.NET中的基本类型,据说是对托管程序封装的不完整吧,在2010等版本中有对应的事件类,可以使用e.Veto();将该事件抛弃。
|
|