あなたが必要です(そしてとして渡します)。ただし、これがあなたがやろうとしていることを達成できるかどうかはまだ完全にはわかりません。WM_NCLBUTTONDOWNHTCAPTIONwParam
通常、タイトル バー以外の場所をクリックしたときにユーザーがフォームを移動できるようにする方法は、メッセージを処理し、カーソルが移動を開始する領域の上にあるときにWM_NCHITTEST戻ることです。HTCAPTIONただし、この領域が子コントロールで占有されている場合は、子コントロールWM_NCHITTESTからも処理して返す必要がありHTTRANSPARENTます。
ちなみに、これを達成するためのより簡単な方法は、Mehrdad Afshariが提案したように、フォームのLocationプロパティを設定することです。あなたは彼に「マウスの動きに合わせて移動する必要がある」とコメントしましたが、それはまさにあなたができることであり、すべきことです。
class MyForm : Form{
    Point downAt;
    MyForm(){
        Label lbl      = new Label();
        lbl.AutoSize   = true;
        lbl.BackColor  = Color.Blue;
        lbl.ForeColor  = Color.White;
        lbl.Location   = new Point(50, 50);
        lbl.Text       = "Drag me to move this form.";
        lbl.Parent     = this;
        lbl.MouseDown += (s, e)=>downAt = e.Location;
        lbl.MouseMove += (s, e)=>{if(lbl.Capture) Location += (Size)e.Location - (Size)downAt;};
    }
}
このアプローチの問題は、最上位ウィンドウを移動するための Windows のコードをバイパスすることです。つまり、ユーザーが [画面のプロパティ] ダイアログで [ドラッグ中にウィンドウの内容を表示する] オプションを選択していない場合、その設定は事実上無視されます (ドラッグ アウトラインは表示されません)。私が考えていない他の欠点があるかもしれません。
ただし、全体として、これはこれを達成するためのシンプルで簡単な方法であり、プラットフォームの呼び出しに依存しない完全な .NET ソリューションです (したがって、Unix 上の Mono に移植できるはずです)。
おっとっと。C# のサンプル コードを提供したことに気付きましたが、あなたのコードは VB.NET のようです。私はあなたが必要とするものは次のようになると思います:
Sub New()
    Dim lbl As New Label
    lbl.AutoSize  = True
    lbl.BackColor = Color.Blue
    lbl.ForeColor = Color.White
    lbl.Location  = New Point(50, 50)
    lbl.Text      = "Drag me to move this form."
    lbl.Parent    = Me
    AddHandler lbl.MouseDown, Function(ByVal s As Object, ByVal e As MouseEventArgs)
        Me.downAt = e.Location
    End Function
    AddHandler lbl.MouseMove, Function(ByVal s As Object, ByVal e As MouseEventArgs)
        If lbl.Capture Then
            Me.Location = Me.Location + DirectCast(e.Location, Size) - DirectCast(Me.downAt, Size)
        End If
    End Function
End Sub
これは、VB.NET でこれを表現する最も簡潔な方法ではない場合があります。Reflectorを使用して翻訳しました。