Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: mymooney.ru от 24-03-2015, 09:42:11

Название: Действия над файлом перед закрытием. До появления Save As
Отправлено: mymooney.ru от 24-03-2015, 09:42:11
Здравствуйте.
Как произвести какие либо действия над файлом перед закрытием, но до появления диалога - Сохранить изменения?
То есть когда мы нажали крестик закрыть, но еще не появилось диалоговое окно - Сохранить изменения.
Что за событие?

"Событие DocumentToBeDestroyed происходит после диалогового окна - Сохранить...."
Название: Re: Действия над файлом перед закрытием. До появления Save As
Отправлено: Александр Ривилис от 24-03-2015, 10:01:41
Если закрывается документ: [Doc Event] : Command will Start        : CLOSE
Если закрывается AutoCAD: [Doc Event] : Command will Start        : QUIT
Название: Re: Действия над файлом перед закрытием. До появления Save As
Отправлено: mymooney.ru от 24-03-2015, 10:08:11
Да, закрытие документа, с точки зрения API .NET событий.
Название: Re: Действия над файлом перед закрытием. До появления Save As
Отправлено: Александр Ривилис от 24-03-2015, 10:23:50
Да, закрытие документа, с точки зрения API .NET событий.
Не понял. Я же уже всё написал. Расшифровываю. Событие Document.CommandWillStart. Команды QUIT и CLOSE
Название: Re: Действия над файлом перед закрытием. До появления Save As
Отправлено: mymooney.ru от 24-03-2015, 10:54:58
Если вот так вот -
Код - C# [Выбрать]
  1. public void Initialize()
  2. {
  3.        Application.DocumentManager.MdiActiveDocument.CommandWillStart += MdiActiveDocument_CommandWillStart;
  4. }
  5.  
  6. void MdiActiveDocument_CommandWillStart(object sender, AcAp.CommandEventArgs e)
  7.         {
  8.             WindowsForm.MessageBox.Show(e.GlobalCommandName);
  9.             if (e.GlobalCommandName.ToUpper().Equals("_close"))
  10.             {
  11.                 WindowsForm.MessageBox.Show("Шалом-9");
  12.             }
  13.         }
  14.  

то срабатывает через раз, или вообще не работает...
Название: Re: Действия над файлом перед закрытием. До появления Save As
Отправлено: Александр Ривилис от 24-03-2015, 11:25:47
1. Внимательно прочитай мою подпись по поводу форматирования кода на форуме. Это обязательное требование.
2. В этой строке как минимум две ошибки:
Код - C# [Выбрать]
  1. if (e.GlobalCommandName.ToUpper().Equals("_close"))
a) Ты переводишь строку в прописные буквы и сравниваешь со строкой из строчных букв.
b) Глобальное имя команды "CLOSE", а не "_CLOSE".
3. Не достаточно один раз подписаться на событие запуска команды в одном документе. Нужно подписаться на события создания/удаления документов и в них подписываться/отписываться от CommandWillStart. Это потому, что команда может быть запущена в любом из открытых документов (обычно в том, который в данный момент является активным)
Название: Re: Действия над файлом перед закрытием. До появления Save As
Отправлено: mymooney.ru от 24-03-2015, 11:35:50
Понял, спасибо.