你如何防止窗户被移动?

Ozz*_*zzy 37 .net c# user-interface winforms

我怎样才能阻止一个表格被移动.我将表单边框样式设置为FixedSingle,并希望保持这种方式,因为它在Vista中看起来很好:)

Jas*_*own 71

看看这个链接.您可能对选项#3感兴趣.它将要求您包装一些本机代码,但应该工作.链接底部还有一条评论,显示了一种更简单的方法.取自评论(不能归功于它,但我会为你节省一些搜索):

protected override void WndProc(ref Message message)
{
    const int WM_SYSCOMMAND = 0x0112;
    const int SC_MOVE = 0xF010;

    switch(message.Msg)
    {
        case WM_SYSCOMMAND:
           int command = message.WParam.ToInt32() & 0xfff0;
           if (command == SC_MOVE)
              return;
           break;
    }

    base.WndProc(ref message);
}
Run Code Online (Sandbox Code Playgroud)

  • 如何使它再次移动? (2认同)

cry*_*ted 27

您可以将FormBorderStyle"表单" 的属性设置为"无"

this.FormBorderStyle=System.Windows.Forms.FormBorderStyle.None
Run Code Online (Sandbox Code Playgroud)


V4V*_*tta 9

我发现这可以阻止表单移动(在c#中)

protected override void WndProc(ref Message m)
        {
            const int WM_SYSCOMMAND = 0x0112;
            const int SC_MOVE = 0xF010;

            switch (m.Msg)
            {
                case WM_SYSCOMMAND:
                    int command = m.WParam.ToInt32() & 0xfff0;
                    if (command == SC_MOVE)
                        return;
                    break;
            }
            base.WndProc(ref m);
        }
Run Code Online (Sandbox Code Playgroud)

在这里找到