Application オブジェクト イベントは、アプリケーション ウィンドウへの応答に使用されます。Application イベントを登録すると、AutoCAD をシャットダウンするか、イベントの登録を解除するまで登録されたままになります。
Application オブジェクトでは次のイベントを使用できます。
AutoCAD がカスタマイズ モードに移行する直前に発生。
マウス ボタンをダブルクリックしたときに発生。
AutoCAD セッションが終了する直前に発生。
[カスタマイズ]ダイアログ ボックスが表示される直前に発生。
[作図補助設定]ダイアログ ボックスが表示される直前に発生。
[オプション]ダイアログ ボックスが表示される直前に発生。
AutoCAD がカスタマイズ モードを終了するときに発生。
モーダルなダイアログ ボックスが表示される直前に発生。
AutoCAD テキストのときに発生。
モーダルなダイアログ ボックスを閉じたときに発生。
メッセージが AutoCAD によって変換される直前に発生。
AutoCAD のシャットダウンを中断したときに発生。
BeginQuit イベントの後で、シャットダウンが始まる前に発生。
システム変数の変更が試行されたときに発生。
システム変数の変更が試行される直前に発生。
この例では、BeginQuit イベントでイベント ハンドラを登録する方法を示します。登録が完了すると、AutoCAD が完全にシャットダウンする前にメッセージ ボックスが表示されます。
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
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());
}
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