C#无标题栏窗体拖动

本文介绍了如何使用C#编程语言实现一个窗体上的自定义控件(如panelTitle)的拖动功能,通过MouseDown,MouseUp和MouseMove事件处理程序来控制窗口的位置变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


以下是一个示例代码,它使用名为“panelTitle”的自定义控件来实现拖动窗体

csharp 
public partial class Form1 : Form
{
    private bool dragging = false;
    private Point dragCursorPoint;
    private Point dragFormPoint;

    public Form1()
    {
        InitializeComponent();
    }

    private void panelTitle_MouseDown(object sender, MouseEventArgs e)
    {
        dragging = true;
        dragCursorPoint = Cursor.Position;
        dragFormPoint = this.Location;
    }

    private void panelTitle_MouseUp(object sender, MouseEventArgs e)
    {
        dragging = false;
    }

    private void panelTitle_MouseMove(object sender, MouseEventArgs e)
    {
        if (dragging)
        {
            Point dif = Point.Subtract(Cursor.Position, new Size(dragCursorPoint));
            this.Location = Point.Add(dragFormPoint, new Size(dif));
        }
    }
}
 
 ```在此示例中,MouseDown事件处理程序设置dragging变量为true,并保存当前鼠标光标位置和窗体位置。MouseMove事件处理程序在拖动期间计算鼠标移动的差异,并将其添加到窗体位置中。MouseUp事件处理程序将dragging变量设置为false。

请注意,此示例假定您已经在窗体上创建一个名为panelTitle的自定义控件,并将其MouseDown,MouseUp和MouseMove事件与相应的事件处理程序关联。

您还可以将上述代码与其他控件一起使用,例如窗体本身或任何其他控件。在这种情况下,您需要将相应的事件处理程序分配给该控件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一凡888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值