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