C# winform 无边框窗口 移动
阅读原文时间:2023年09月07日阅读:1

给自己留个笔记, 在用wke做界面的时候. 往往需要把winform窗口设置成无边框

但是WebUI也需要移动窗口, 所以才把以前在易语言中用的方法翻译过来使用

第零步: 设置无边框窗口

form属性设置 FormBorderStyle = None

第一步: 引用

using System.Runtime.InteropServices;

第二步: 声明DLL调用方法

//窗口是否最大化, 最大化返回true 否则false
[DllImport("user32.dll")]
public static extern bool IsZoomed(IntPtr hwnd);
//释放捕获
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
//发送消息
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

第三步: 为”鼠标按下(MouseDown)”事件添加功能代码

private void Login_MouseDown(object sender, MouseEventArgs e)
{
    //鼠标左键按下
    if (e.Button == MouseButtons.Left)
    {
        if (IsZoomed(this.Handle) == false)
            {
                ReleaseCapture();
                SendMessage(this.Handle, 161, 2, 0);
            }
    }
}

这样功能就实现辣