我怎样才能使一个窗体不可移动又可移动

本文关键字:可移动 一个 窗体 | 更新日期: 2023-09-27 18:28:09

我有一个windows窗体,我想在用户单击按钮时使其不可移动,并在用户再次单击按钮时再次使其可移动。

我在这里找到了这个解决方案:如何防止窗口被移动?

但这是一种超越,所以我认为这是为了让表格永远不可移动。

有线索吗?感谢

我怎样才能使一个窗体不可移动又可移动

只有一个标志:

private bool _preventMove = false;
protected override void WndProc(ref Message message)
{
    const int WM_SYSCOMMAND = 0×0112;
    const int SC_MOVE = 0xF010;
    if(_preventMove) 
    {
        switch(message.Msg)
        {
            case WM_SYSCOMMAND:
               int command = message.WParam.ToInt32() & 0xfff0;
               if (command == SC_MOVE)
                  return;
               break;
        }
    }
    base.WndProc(ref message);
}

将标志设置为true/false以禁用/启用移动