UI事件在嵌入式COM控件中丢失

时间:2012-02-13 18:26:48

标签: c# winforms visual-c++ c#-4.0 com

我有一个使用C#WinForms制作的自定义UserControl,它通过COM公开给C ++主机应用程序。当我编写和调试UserControl时,我有一个C#测试应用程序,并确保应用程序从这个角度工作。 C#WinForms环境中的C#WinForms控件没有问题。

通过我们的C ++ COM主机应用程序测试时,UI事件不再有效。通过托管C ++应用程序UI进行交互,我可以设置属性并查看托管控件中的响应。但是,当我点击一个控件时,整个应用程序会冻结。我观察到了以下行为:

  • 按钮
  • 标签页
  • 复选框
  • Value Up / Down
  • 文字框

只要我没有单击托管COM控件中的活动UI组件,它就会正常运行 - 直到COM控件需要创建新标签页的事件发生。

我已尝试设置各种断点,但在我们到达托管的COM控件之前它会冻结,整个应用程序被冻结。可以说更复杂的备用COM控件似乎没有这种行为。

有什么线索是怎么回事?我迷失了,试图找出问题所在。


新信息

整个UserControl的内容位于带有多个选项卡的TabControl中。我在TabControl外部创建了一个按钮,当单击它时,我可以在初始化ComControl时定义的每个页面上与TabControl内的控件进行交互。

但是,如果我创建一个新的TabPage或实例化一个FolderBrowserDialog,我就回到旧的行为。那么,如何在ComControl中安全地使用TabPages?

0 个答案:

没有答案