it will be draggable by default if you use a formborderstyle that has a border + titlebar.

for borderless forms you can use api functions:

vb Code:
  1. Imports System.Runtime.InteropServices
  2.  
  3. Public Class Form1
  4.  
  5.     Dim moveDown As Boolean = False
  6.  
  7.     Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
  8.         moveDown = True
  9.     End Sub
  10.  
  11.     Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
  12.         If moveDown Then
  13.             ReleaseCapture()
  14.             SendMessage(Me.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0)
  15.         End If
  16.     End Sub
  17.  
  18.     Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
  19.         moveDown = False
  20.     End Sub
  21.  
  22. #Region " Functions and Constants "
  23.  
  24.     <DllImport("user32.dll")> _
  25.     Public Shared Function ReleaseCapture() As Boolean
  26.     End Function
  27.  
  28.     <DllImport("user32.dll")> _
  29.     Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
  30.     End Function
  31.  
  32.     Private Const WM_NCLBUTTONDOWN As Integer = &HA1
  33.     Private Const HTBORDER As Integer = 18
  34.     Private Const HTBOTTOM As Integer = 15
  35.     Private Const HTBOTTOMLEFT As Integer = 16
  36.     Private Const HTBOTTOMRIGHT As Integer = 17
  37.     Private Const HTCAPTION As Integer = 2
  38.     Private Const HTLEFT As Integer = 10
  39.     Private Const HTRIGHT As Integer = 11
  40.     Private Const HTTOP As Integer = 12
  41.     Private Const HTTOPLEFT As Integer = 13
  42.     Private Const HTTOPRIGHT As Integer = 14
  43.  
  44. #End Region
  45.  
  46. End Class