• How do I prevent a user from moving a form at run time?
    The following code snippet (posted in the Windows Forms FAQ forums) shows how you can prevent a user from moving a form at run time:
    [C#]
    protected override void WndProc(ref Message m)
    {
    const int WM_NCLBUTTONDOWN = 161;
    const int WM_SYSCOMMAND = 274;
    const int HTCAPTION = 2; 
    const int SC_MOVE = 61456;
    
    if((m.Msg == WM_SYSCOMMAND) && (m.WParam.ToInt32() == SC_MOVE))
    {
    return;
    }
    
    if((m.Msg == WM_NCLBUTTONDOWN) && (m.WParam.ToInt32() == HTCAPTION))
    {
    return;
    }
    
    base.WndProc (ref m);
    }
    
    [VB.NET]
    Protected Overrides  Sub WndProc(ByRef m As Message)
    const Integer WM_NCLBUTTONDOWN = 161
    const Integer WM_SYSCOMMAND = 274
    const Integer HTCAPTION = 2 
    const Integer SC_MOVE = 61456
     
    If (m.Msg = WM_SYSCOMMAND) &&(m.WParam.ToInt32() = SC_MOVE) Then
    Return
    End If
     
    If (m.Msg = WM_NCLBUTTONDOWN) &&(m.WParam.ToInt32() = HTCAPTION) Then
    Return
    End If
     
    MyBase.WndProc( m)
    End Sub