C#のフォームをドラッグで移動できないようにする

C#のフォームアプリでウィンドウのドラッグ移動をできないようにする方法です。

対象のフォームのクラスでWndRrocメソッドをオーバーライドします。

protected override void WndProc(ref Message m)
{
    if ((m.Msg == 0x0112) && ((m.WParam.ToInt64() & 0xF010) == 0xF010))
    {
        m.Result = IntPtr.Zero;
        return;
    }

    base.WndProc(ref m);
    return;
}

0x0112 は WM_SYSCOMMAND で、0xF010 は SC_MOVE です。
システムのウィンドウ移動のメッセージを受けて、何もせずに終了することで、ウィンドウ移動しないようにします。

スポンサーリンク