当前位置: 首页 > article >正文

C#无标题栏窗体拖动

要实现C#无标题栏窗体的拖动功能,可以通过以下步骤实现:

  1. 在窗体的构造函数中添加以下代码,以去掉标题栏:
this.FormBorderStyle = FormBorderStyle.None;
  1. 然后,添加以下代码以处理鼠标按下事件:
private const int WM_NCHITTEST = 0x0084;
private const int HT_CAPTION = 0x0002;

protected override void WndProc(ref Message m)
{
    switch (m.Msg)
    {
        case WM_NCHITTEST:
            base.WndProc(ref m);
            if ((int)m.Result == HT_CLIENT)
                m.Result = (IntPtr)HT_CAPTION;
            return;
    }
    base.WndProc(ref m);
}
  1. 最后,通过处理鼠标按下和移动事件来实现拖动功能:
private bool isDragging = false;
private Point lastCursor;
private Point lastForm;

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    isDragging = true;
    lastCursor = Cursor.Position;
    lastForm = this.Location;
}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    if (isDragging)
    {
        int x = lastForm.X - (lastCursor.X - Cursor.Position.X);
        int y = lastForm.Y - (lastCursor.Y - Cursor.Position.Y);
        this.Location = new Point(x, y);
    }
}

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
    isDragging = false;
}

将上述代码添加到你的窗体上即可实现无标题栏窗体的拖动功能。


http://www.kler.cn/a/312207.html

相关文章:

  • WPF中MVVM工具包 CommunityToolkit.Mvvm
  • ORA-01092 ORA-14695 ORA-38301
  • centos查看硬盘资源使用情况命令大全
  • Axure是什么软件?全方位解读助力设计入门
  • Unity 网格模型及优化
  • JavaScript 正则表达式详解
  • 物联网开发+充电桩管理系统+充电桩系统源码
  • 【北京迅为】《STM32MP157开发板使用手册》- 第四十二章 事件实验
  • Java设计模式—面向对象设计原则(四) ----->接口隔离原则(ISP) (完整详解,附有代码+案例)
  • 基于JavaWeb开发的java+Springboot操作系统教学交流平台详细设计实现
  • 探索AI大模型的未来:电信运营商与云服务商的新征途@附58页PDF文件下载
  • liunx 计划任务
  • VRRP协议原理
  • 《计算机网络名词解释》
  • 【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
  • 量化交易软件、接口、API、区别、用法,有什么好用的么
  • Vue2中路由的介绍和使用
  • UDS诊断-面试题2
  • 掌握Protobuf精髓:深入解析.proto文件语法及高效应用
  • 蓝桥杯4. Fizz Buzz 经典问题
  • sql基础语法及常见函数等
  • 解决:The play() request was interrupted by a call to pause().报错
  • Android Glide:让图片加载从未如此简单
  • 14_input子系统my_touch_device,my_touch_handlerLinux内核模块
  • Android 将EasyPermissions进一步封装,使得动态权限申请更加简明
  • Java 23、JDK 23正式发布!