我有一个 Windows 窗体,我想在用户单击按钮时使其不可移动,并在用户再次单击按钮时使其再次可移动。
我在这里找到了这个解决方案:你如何防止窗户被移动?
但它是一个覆盖,所以我认为这是为了使表单永远不可移动。
有什么线索吗?谢谢
我有一个 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 以禁用/启用移动