欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 无边框窗体之窗体移动实现代码

程序员文章站 2024-02-19 23:40:34
点击窗体任意位置移动窗体: 需要添加命名空间: using system.runtime.interopservices;复制代码 代码如下:private const...

点击窗体任意位置移动窗体:

需要添加命名空间:

using system.runtime.interopservices;

复制代码 代码如下:

private const int wm_nclbuttondown = 0x00a1;
private  const int htcaption = 2;
[dllimport("user32.dll", charset = charset.unicode)]
public static extern intptr sendmessage(intptr hwnd, int wmsg, intptr wparam, intptr lparam);
[dllimport("user32.dll", charset = charset.unicode)]
public static extern bool releasecapture();

protected override void onmousedown( mouseeventargs e )
{
    base.onmousedown( e );
    if (e.button == mousebuttons.left)  // 按下的是鼠标左键             
    {
        releasecapture();   // 释放捕获                
        sendmessage(this.handle, wm_nclbuttondown, (intptr)htcaption, intptr.zero);    // 拖动窗体             
    }
}