Это можно сделать двумя способами.
Первый способ:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Private Declare Function ReleaseCapture Lib "user32" () As Long Const HTCAPTION = 2 Const WM_NCLBUTTONDOWN = &HA1 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then ReleaseCapture SendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0& End If End SubВторой способ:
Dim x0 As Single, y0 As Single Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) x0 = X y0 = Y End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Form1.Left = Form1.Left + X - x0 Form1.Top = Form1.Top + Y - y0 End If End SubАналогично с помощью этих способов можно перемещать не только форму по экрану, но и любой контрол по форме.