События пользовательского интерфейса потеряли во встроенном контроле COM - PullRequest
1 голос
/ 13 февраля 2012

У меня есть пользовательский UserControl, созданный на C # WinForms, который предоставляется через COM для хост-приложения C ++.Когда я писал и отлаживал UserControl, у меня было приложение для тестирования на C #, и я убедился, что приложение работает с этой точки зрения.Элемент управления C # WinForms в среде C # WinForms не имеет проблем.

При тестировании через наше хост-приложение C ++ COM события пользовательского интерфейса больше не работают.Взаимодействуя через пользовательский интерфейс приложений C ++, я могу установить свойства и посмотреть ответ в размещенном элементе управления.Однако, когда я нажимаю на элемент управления, все приложение зависает.Я наблюдал за поведением:

  • Кнопки
  • Страницы вкладок
  • Флажки
  • Значение вверх / вниз
  • Текстовые поля

Пока я не нажимаю на активный компонент пользовательского интерфейса в размещенном COM-элементе управления, он ведет себя нормально - до тех пор, пока не произойдет событие, когда элемент управления COM должен создать новую вкладку.

Я пытался установить все виды точек останова, но он зависает, прежде чем мы перейдем к размещенному COM-элементу управления, и все приложение будет заморожено.Альтернативное управление COM, которое, возможно, является более сложным, похоже, не имеет такого поведения.

Есть какие-нибудь подсказки, что происходит?Я заблудился, пытаясь выяснить проблему.


Новая информация

Содержимое всего UserControl находилось в TabControl с несколькими вкладками.Я создал одну кнопку вне TabControl, и при ее нажатии я мог взаимодействовать с элементами управления внутри TabControl на каждой из страниц, которые были определены при инициализации ComControl.

Однако, если я создаю новыйTabPage или создать экземпляр FolderBrowserDialog Я вернусь к старому поведению.Итак, как мне безопасно использовать TabPages и тому подобное из ComControl?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...