CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

处理应用程序事件 (.NET)

2024-5-18 19:13| 发布者: admin| 查看: 100| 评论: 0|原作者: admin|来自: AutoCAD

处理应用程序事件 (.NET)

应用程序对象事件用于响应应用程序窗口。注册应用程序事件后,它将保持注册状态,直到 AutoCAD 关闭或取消注册该事件。

以下事件可用于 Application 对象:

BeginCustomizationMode

在AutoCAD进入自定义模式之前触发。

开始双击

双击鼠标按钮时触发。

开始退出

在AutoCAD任务结束之前触发。

显示自定义对话框

在显示“自定义”对话框之前触发。

显示绘图设置对话框

在显示“绘图设置”对话框之前触发。

显示选项对话框

在显示“选项”对话框之前触发。

EndCustomizationMode

在AutoCAD退出自定义模式时触发。

EnterModal (英语)

在显示模式对话框之前触发。

在AutoCAD文本时触发。

LeaveModal (英语:LeaveModal)

在模式对话框关闭时触发。

PreTranslateMessage

在AutoCAD翻译消息之前触发。

退出已中止

在尝试关闭AutoCAD时触发。

退出WillStart

在 BeginQuit 事件之后和关闭开始之前触发。

系统变量已更改

在尝试更改系统变量时触发。

系统变量更改

在尝试更改系统变量之前触发。

启用 Application 对象事件

此示例演示如何向 BeginQuit 事件注册事件处理程序。注册后,在AutoCAD完全关闭之前会显示一个消息框。

VB.NET

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
 
<CommandMethod("AddAppEvent")> _
Public Sub AddAppEvent()
  AddHandler Application.SystemVariableChanged, AddressOf appSysVarChanged
End Sub
 
<CommandMethod("RemoveAppEvent")> _
Public Sub RemoveAppEvent()
  RemoveHandler Application.SystemVariableChanged, AddressOf appSysVarChanged
End Sub
 
Public Sub appSysVarChanged(ByVal senderObj As Object, _
                            ByVal sysVarChEvtArgs As Autodesk.AutoCAD.ApplicationServices. _
                            SystemVariableChangedEventArgs)
 
  Dim oVal As Object = Application.GetSystemVariable(sysVarChEvtArgs.Name)
 
  '' Display a message box with the system variable name and the new value
  Application.ShowAlertDialog(sysVarChEvtArgs.Name & " was changed." & _
                              vbLf & "New value: " & oVal.ToString())
End Sub

C#

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
[CommandMethod("AddAppEvent")]
public void AddAppEvent()
{
  Application.SystemVariableChanged +=
      new Autodesk.AutoCAD.ApplicationServices.
          SystemVariableChangedEventHandler(appSysVarChanged);
}
 
[CommandMethod("RemoveAppEvent")]
public void RemoveAppEvent()
{
  Application.SystemVariableChanged -=
      new Autodesk.AutoCAD.ApplicationServices.
          SystemVariableChangedEventHandler(appSysVarChanged);
}
 
public void appSysVarChanged(object senderObj, 
                             Autodesk.AutoCAD.ApplicationServices.
                             SystemVariableChangedEventArgs sysVarChEvtArgs)
{
  object oVal = Application.GetSystemVariable(sysVarChEvtArgs.Name);
 
  // Display a message box with the system variable name and the new value
  Application.ShowAlertDialog(sysVarChEvtArgs.Name + " was changed." +
                              "\nNew value: " + oVal.ToString());
}

VBA/ActiveX 代码参考

Public WithEvents ACADApp As AcadApplication
 
Sub Example_AcadApplication_Events()
    ' Intialize the public variable (ACADApp)
    '
    ' Run this procedure first
 
    Set ACADApp = ThisDrawing.Application
End Sub
 
Private Sub ACADApp_SysVarChanged(ByVal SysvarName As String, _
                                  ByVal newVal As Variant)
    ' This procedure intercepts an Application SysVarChanged event.
 
    MsgBox (SysvarName & " was changed." & _
            vbLf & "New value: " & newVal)
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2024-12-15 11:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部