Come mettere il Form al Top (in prima linea)

In un modulo BAS inserire il seguente codice:

Option Explicit

Public Declare Function SetWindowPos Lib "user32" (ByVal h As Long, ByVal hb As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal f As Long) As Long
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2

Public Sub Form_OnTop(Form As Form)
'mette il form in prima linea (al Top)
Dim lResult As Long
lResult = SetWindowPos(Form.hWnd, HWND_TOPMOST, 0&, 0&, 0&, 0&, FLAGS)
End Sub

Public Sub Form_NotOnTop(Form As Form)
'fa ritornare il form normale (non al top)
Dim lResult As Long
lResult = SetWindowPos(Form.hWnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, FLAGS)
End Sub

Per provarlo, collochiamo due CommandButton nel Form. Al primo assegniamo la Caption=Al Top, al secondo assegniamo la Caption=Non al Top.

Nella sezione Codice del Form inserire:

Option Explicit

Private Sub Command1_Click()
Form_OnTop Form1
End Sub

Private Sub Command2_Click()
Form_NotOnTop Form1
End Sub

Non rimane che avviare il programmino (F5) e vedere l'effetto.

Testato su: Windows 98, Windows Me, Windows 2000 Professional