Vb.net sendmessage和从.net应用程序激活vb6表单时出现问题

Vb.net sendmessage和从.net应用程序激活vb6表单时出现问题,vb.net,api,vb6,migration,vb6-migration,Vb.net,Api,Vb6,Migration,Vb6 Migration,我已将一个旧的vb6应用程序编译成dll。最终我们将转换为.NET,但目前我正在尝试从DLL加载表单。到目前为止,我已经能够在.NET中加载并查看vb6表单,但无法激活控件。因此,下面代码中的setparent正在工作,但sendmessage和下面的代码没有工作。顺便说一下,在调试模式下,这一切都很好。只有当我使用编译后的dll时,我才有问题 我的声明是: Private Shared Function SetParent(ByVal hWndChild As IntPtr, _

我已将一个旧的vb6应用程序编译成dll。最终我们将转换为.NET,但目前我正在尝试从DLL加载表单。到目前为止,我已经能够在.NET中加载并查看vb6表单,但无法激活控件。因此,下面代码中的setparent正在工作,但sendmessage和下面的代码没有工作。顺便说一下,在调试模式下,这一切都很好。只有当我使用编译后的dll时,我才有问题

我的声明是:

Private Shared Function SetParent(ByVal hWndChild As IntPtr, _
          ByVal hWndNewParent As IntPtr) As Int32
End Function

Public Declare Auto Function SendMessage Lib "user32.dll" ( _
       ByVal hWnd As IntPtr, _
       ByVal wMsg As Int32, _
       ByVal wParam As Int32, _
       ByVal s As String _
       ) As Int32

 Private Shared Function SetForegroundWindow(ByVal hwnd As IntPtr) As IntPtr
 End Function

 Private Shared Function LockWindowUpdate(ByVal hwndLock As IntPtr) As Boolean
 End Function
我使用的代码如下:

SetParent(mintFormHandle, Me.Handle.ToInt32)
SendMessage(mintFormHandle, WM_ACTIVATE, 1, IntPtr.Zero)
SetForegroundWindow(mintFormHandle)
LockWindowUpdate(0)

Me.Refresh()

请不要对旧的vb6代码发表评论。是的,在一个完美的世界中,转换在几年前就已经完成了。

我不确定我是否理解“到目前为止,我已经能够在.NET中加载并查看vb6表单,但我无法激活控件。”-控件是否都被禁用?整个vb6表单在.NET容器中被冻结。容器窗体工作正常。已冻结,但可以看到控件?如果删除对
LockWindowUpdate
函数的调用,会发生什么情况?