I'm building a COM visible library that should be used in VB6. I need to use WinForms in the library that can be used from within VB6 to open .NET Forms. This all currently works fine. The problem is when I trigger an event on the .NET Form that is being read by VB6. VB6 seems to be unable to perform any type of UI action while the .NET form is open. So handling an event and displaying a simple MsgBox does not work. The code runs but the MsgBox is never shown.

I have the feeling that this has something to do with multithreading and not being able to run on the VB6 UI-thread. How do I know it's multithreading? Because when I set a breakpoint in the VB6 event handler it hits the breakpoint without pausing the actual application UI like it normally would when you use VB6 code only.

After this problem I started testing with the Interop Form Toolkit because that should be able to make .NET Forms work from within VB6. It's true, the toolkit works as advertised but it fails with the same problem. Events handled from the .NET Form are still unable to open a MsgBox or any other VB6 form.

Does anyone know if it is possible to keep using the VB6 UI elements while a .NET Form is opened?