将Interop表格保留在VB6应用程序的顶部

时间:2012-04-04 18:01:33

标签: vb.net winforms vb6 interop winforms-interop

我正在使用InteropFormsToolkit 2.1版。我试图确保当.NET表单从VB6表单上抛出的事件加载时,.NET表单可以保持在最顶层。我尝试了很多东西,但却无法完成任何工作。我已经尝试了从z-index到将User32.dll添加到User32.dll以将其推送到最前端等所有内容。

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:1)

在vb6中,您可以使用:

Private Sub Form_Load()
OnTopMe Me, True
End Sub

并按照模块中的代码

Declare Function SetWindowPos Lib "User32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) As Long


Public Sub OnTopMe(FormID As Object, onTop As Boolean)
     If onTop = True Then SetWindowPos FormID.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
     If onTop = False Then SetWindowPos FormID.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

我不知道如何在.Net

中做到这一点