9.6. Обработка событий коллекции документов (DocumentCollection Events)

Источник здесь[перевод не проверен] ;[Переводчик: Богданов Михаил]

    Объектные события DocumentCollection используются, чтобы реагировать на открытие документов в приложении. События DocumentCollection, в отличии от объектных событий документа отсаются зарегистрированными пока AutoCAD не будет выключен, или пока их регистрацию не отменят.

Объект DocumentCollection имеет следующие события:

DocumentActivated

    Срабатывает при активации окна документов.

DocumentActivationChanged

    Срабатывает, когда активное окно документа отключено (прим. переводчика: деактивировано) или свернуто.

DocumentBecameCurrent

    Происходит когда окно документа делается текущим, и при этом оно отличается от окна предыдущего документа бывшего активным.

DocumentCreated

    Срабатывает при создании окна документа. Возникает после создания нового рисунка или открытия существующего.

DocumentCreateStarted

    Срабатывает перед тем как окно документа будет создано. Возникает перед созданием нового рисунка или открытием существующего.

DocumentCreationCanceled

    Срабатывает, когда запрос на создание нового или открытие существующего чертежа отменен.

DocumentDestroyed

    Срабатывает, когда окно документа уничтожено и связанная с ним база данных объектов удалена.

DocumentLockModeChanged

    Срабатывает, если режим блокировки документа изменился.

DocumentLockModeChangeVetoed

    Срабатывает, после блокировки изменения режима вето. (прим. переводчика: Vetoed)

DocumentLockModeWillChange

    Срабатывает перед изменением режима блокировки документа.

DocumentToBeActivated

    Срабатывает перед активацией документа.

DocumentToBeDeactivated

    Срабатывает перед отключением (прим. переводчика: деактивацией) документа

DocumentToBeDestroyed

    Срабатывает перед уничтожением документа.

Включение событий объекта DocumentCollection

    Следующий пример использует событие DocumentActivated, чтобы указать, когда окно документа активируется. Когда событие происходит появляется окно сообщения с именем документа, который активируется.

Код VB.NET

   1:  Imports Autodesk.AutoCAD.Runtime
   2:  Imports Autodesk.AutoCAD.ApplicationServices
   3:   
   4:  <CommandMethod("AddDocColEvent")> _
   5:  Public Sub AddDocColEvent()
   6:    AddHandler Application.DocumentManager.DocumentActivated, _
   7:        AddressOf docColDocAct
   8:  End Sub
   9:   
  10:  <CommandMethod("RemoveDocColEvent")> _
  11:  Public Sub RemoveDocColEvent()
  12:    RemoveHandler Application.DocumentManager.DocumentActivated, _
  13:        AddressOf docColDocAct
  14:  End Sub
  15:   
  16:  Public Sub docColDocAct(ByVal senderObj As Object, _
  17:                          ByVal docColDocActEvtArgs As DocumentCollectionEventArgs)
  18:    Application.ShowAlertDialog(docColDocActEvtArgs.Document.Name & _
  19:                                " was activated.")
  20:  End Sub

Код C#

   1:  using Autodesk.AutoCAD.Runtime;
   2:  using Autodesk.AutoCAD.ApplicationServices;
   3:   
   4:  [CommandMethod("AddDocColEvent")]
   5:  public void AddDocColEvent()
   6:  {
   7:    Application.DocumentManager.DocumentActivated +=
   8:        new DocumentCollectionEventHandler(docColDocAct);
   9:  }
  10:   
  11:  [CommandMethod("RemoveDocColEvent")]
  12:  public void RemoveDocColEvent()
  13:  {
  14:    Application.DocumentManager.DocumentActivated -=
  15:        new DocumentCollectionEventHandler(docColDocAct);
  16:  }
  17:   
  18:  public void docColDocAct(object senderObj, 
  19:                           DocumentCollectionEventArgs docColDocActEvtArgs)
  20:  {
  21:    Application.ShowAlertDialog(docColDocActEvtArgs.Document.Name +
  22:                                " was activated.");
  23:  }

Код VBA / ActiveX

   1:  Private Sub AcadDocument_Activate()
   2:      ' Это пример обработки события Activate объект Document.
   3:   
   4:      MsgBox ThisDrawing.Name & " was activated."
   5:  End Sub


Comments