Often, especially where a customised or skinned look is desired, the form is created with the FormBorderStyle set to FixedSingle.
However if you still want to move that skinned form you have a bit of a problem. Fortunately it is possible to handle the WM_NCHITTEST window message to make windows think the mouse is over the caption even where a form doesn't have one.

1. Defining a rectangle that emulates the form caption
In the form:
VB Code:
  1. Public Class Form1
  2.     Inherits System.Windows.Forms.Form
  3.  
  4. #Region "Private memeber variables"
  5.     Dim rcCaption As Rectangle
  6. #End Region
  7.  
  8.     Public Sub New()
  9.         MyBase.New()
  10.  
  11.         'This call is required by the Windows Form Designer.
  12.         InitializeComponent()
  13.  
  14.         '\\ Make the fake caption rectangle
  15.         rcCaption = New Rectangle(0, 0, Me.Width, 29)
  16.  
  17.     End Sub
  18.  
  19.     Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
  20.  
  21.         e.Graphics.FillRectangle(New SolidBrush(Color.Blue), rcCaption)
  22.  
  23.     End Sub
  24.  
  25.     Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
  26.         '\\ We want to pretend that the rectangle rcCaption, is the caption bar so we can drag the form by it...
  27.         If m.Msg = WM_NCHITTEST Then
  28.             Call FakeCaptionForCaptionlessWindow(Me, m, rcCaption)
  29.         Else
  30.             MyBase.WndProc(m)
  31.         End If
  32.     End Sub
  33.  
  34. End Class

2. The WM_NCHITTEST handler
This is kept in a seperate module for reusability...
VB Code:
  1. Imports System.Windows.Forms
  2.  
  3. '\\ --[ApiHitTestHandling]-------------------------------------
  4. '\\ Used to handle the WM_HITTEST message, to allow dragging of
  5. '\\ captionless windows...
  6. '\\ -----------------------------------------------------------
  7. Module ApiHitTestHandling
  8.  
  9.     Public Const WM_NCHITTEST = &H84
  10.  
  11.     Public Enum HitTestResult
  12.         HTBORDER = 18
  13.         HTBOTTOM = 15
  14.         HTBOTTOMLEFT = 16
  15.         HTBOTTOMRIGHT = 17
  16.         HTCAPTION = 2
  17.         HTCLIENT = 1
  18.         HTERROR = (-2)
  19.         HTGROWBOX = 4
  20.         HTHSCROLL = 6
  21.         HTLEFT = 10
  22.         HTMAXBUTTON = 9
  23.         HTMENU = 5
  24.         HTMINBUTTON = 8
  25.         HTNOWHERE = 0
  26.         HTRIGHT = 11
  27.         HTSYSMENU = 3
  28.         HTTOP = 12
  29.         HTTOPLEFT = 13
  30.         HTTOPRIGHT = 14
  31.         HTVSCROLL = 7
  32.         HTTRANSPARENT = (-1)
  33.         HTOBJECT = 19
  34.         HTCLOSE = 20
  35.         HTHELP = 21
  36.     End Enum
  37.  
  38.     Public Sub FakeCaptionForCaptionlessWindow(ByVal fParent As Form, ByRef m As Message, ByVal CaptionRectangle As Rectangle)
  39.  
  40.         If m.Msg = WM_NCHITTEST Then
  41.             '\\ If the mouse is in the rectangle that is considered to be the caption set the return value to HTCAPTION
  42.             Dim ptClickLocation As New Point(m.LParam.ToInt32)
  43.             ptClickLocation = fParent.PointToClient(ptClickLocation)
  44.  
  45.             If CaptionRectangle.Contains(ptClickLocation) Then
  46.                 m.Result = New IntPtr(HitTestResult.HTCAPTION)
  47.             Else
  48.                 m.Result = New IntPtr(HitTestResult.HTCLIENT)
  49.             End If
  50.         End If
  51.     End Sub
  52.  
  53. End Module