Можно ли в событиях организовать прерывание вызванной команды

Автор Тема: Можно ли в событиях организовать прерывание вызванной команды  (Прочитано 3089 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Есть событие OnActivateCommand, которое срабатывает на запуск команд. Есть ли возможность в нем(или может в каком-то другом событии) принудительно завершить (отменить) вызванную команду?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
CommandManager.StopActiveCommand() не подходит?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Я понимаю, что я чего-то не понимаю, но чего я не понимаю - я не понимаю! :o
Код - vb.net [Выбрать]
  1. Private Sub m_UserInputEvents_OnActivateCommand(ByVal CommandName As String, ByVal Context As Inventor.NameValueMap) Handles m_UserInputEvents.OnActivateCommand
  2.       If CommandName = "SheetMetalPunchToolCmd" Then
  3.                 Debug.Print(m_inventorApplication.CommandManager.ActiveCommand)
  4.                 m_inventorApplication.CommandManager.StopActiveCommand()
  5.        End If
  6.  
  7. End Sub
Только вот дебаг выдает имя активной команды: AppSelectNorthwestArrowCmd -  и это вместо пунша!?
Похоже нужная команда еще не началась, хотя сообщение о ней уже есть в событии. Поток аддина работает параллельно АИ? Попробовать поставить цикл ожидания, пока не появиться нужное имя активной команды? Или есть еще какие-то предложения?