Автоматическое обновление свойств

Автор Тема: Автоматическое обновление свойств  (Прочитано 5849 раз)

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

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

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
Добрый день. Есть addin, который представляет собой пользовательский элемент управления usercontrol, на котором размещены текстовые поля для работы со свойствами и параметрами, а также кнопки. Для считывания свойств инвентора используется кнопка "обновить"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Updatepart.Click
        If m_inventorApplication.ActiveDocumentType = DocumentTypeEnum.kPartDocumentObject Then
            ' Update the property values.
            pDoc = m_inventorApplication.ActiveDocument
            Me.mPartnumber.Text = pDoc.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value
и т.д.
Хочу сделать, чтобы свойства обновлялись автоматически после открытия файла инвентора на подобие этого кода, где отображается имя открытого файла:
Private Sub m_appEvents_OnOpenDocument(ByVal DocumentObject As Inventor.Document, _
ByVal FullDocumentName As String, _
ByVal BeforeOrAfter As Inventor.EventTimingEnum, _
ByVal Context As Inventor.NameValueMap, _
ByRef HandlingCode As Inventor.HandlingCodeEnum)
            System.Windows.Forms.MessageBox.Show("OnOpenDocument: " + DocumentObject.DisplayName)
        End Sub
Какие здесь могут быть нюансы? Или надо делать по-другому?

Оффлайн Владимир Ананьев

  • ADN DevHelp
  • *
  • Сообщений: 148
  • Карма: 8
Чтение свойств из документа Inventor выполняется точно так же.
А вот делать это следует только тогда, когда окно вашего AddIn открыто,
и пользователь ожидает  автозаполнения полей.
В противном случае вроде бы логично просто проигнорировать событие OnOpenDocument.

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

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
Использовал событие OnActivateDocument и все заработало.
Только вот что то не получается обновлять свойства для деталей и сборок, редактируемых по месту.
Через кнопку все работает, а вот через событие OnActivateDocument не хочет.

Оффлайн Владимир Ананьев

  • ADN DevHelp
  • *
  • Сообщений: 148
  • Карма: 8
А может быть это и логично. Пусть юзер явно дает указание изменить данные в файле.  Он же может и Cancel нажать, так ведь?

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

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
А может быть это и логично. Пусть юзер явно дает указание изменить данные в файле.
Тогда смысл автоматизации и ухода от рутины теряется. Зачем кнопка, если можно обойтись без нее?

Оффлайн Алексей Романов

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
Только вот что то не получается обновлять свойства для деталей и сборок, редактируемых по месту.
Через кнопку все работает, а вот через событие OnActivateDocument не хочет.
При редактировании по месту не происходит событие OnActivateDocument. Переходи на событие OnEnvironmentChange...

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

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
При редактировании по месту не происходит событие OnActivateDocument. Переходи на событие OnEnvironmentChange...
Да, Алексей, так и поступил и все получилось. Спасибо.
Если бы я с самого начала знал, что хочу невозможного, столько времени потратил впустую. Ничего, будет мне уроком.