O título já diz tudo.
Public Class Form1 Private Const WM_NCLBUTTONDOWN = &HA1 Private Const HTCAPTION = 2 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Integer, ByVal wMsg As Integer, _ ByVal wParam As Integer, ByVal lParam As String) As Integer Private Declare Sub ReleaseCapture Lib "user32" () 'Deslocamento da PictureBox Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove Dim lHwnd As Int32 lHwnd = PictureBox1.Handle If lHwnd = 0 Then Exit Sub ReleaseCapture() SendMessage(lHwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) End Sub 'Deslocamento da forma Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove Dim lHwnd As Int32 lHwnd = Me.Handle If lHwnd = 0 Then Exit Sub ReleaseCapture() SendMessage(lHwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&) End Sub End Class
Clicar na pictureBox ou na forma e mover o mouse; mover o controle ou a forma.
Funciona com qualquer controle que tenha um Handle.