1

我正在使用 InteropFormsToolkit 2.1 版。我试图确保当 .NET 表单从 VB6 表单上引发的事件加载时,.NET 表单可以保持在顶部。我已经尝试了很多东西,但什么都做不了。我已经尝试了从 z-index 到将托管调用添加到 User32.dll 以将其推到最前沿等的所有方法。

任何想法表示赞赏。

4

1 回答 1

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中做到这一点

于 2012-05-07T15:30:56.847 回答