Winform鼠标拖动改变控件大小、移动控件位置

本文介绍了如何实现Winform应用中鼠标拖动改变控件大小和移动控件位置的功能。通过边界检测,当鼠标靠近控件边缘时切换光标。按住鼠标左键拖动可调整控件大小,同时进行边界检查防止超出父容器范围。此外,还提供了自定义类以方便初始化控件的拖动和缩放功能。

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

基本逻辑:

1、鼠标移动过程(未按下鼠标左键)进行边界检测,当移动到控件边界时(某范围内),改变显示的光标;

2、此时,若按下鼠标左键(也可是右键),记录鼠标的位置和控件的大小;

3、按下鼠标左键移动过程中,改变控件的大小(三个方向)或者location(五个方向);

4、逻辑完善:进行边界检测;

5、编写为自己的类,可以用于初始化控件使其具有鼠标拖动改变大小的功能。


数据准备:方向枚举,用于记录方向

public enum MouseDirection
    {
        East,
        West,
        South,
        North,
        Southeast,
        Southwest,
        Northeast,
        Northwest,
        None
    }

鼠标移动:这列出了四个方向分别为东南、西北、西南、东北

if (e.Location.X >= control.Width - 5 && e.Location.Y >= control.Height - 5 )
                {
                    control.Cursor = Cursors.SizeNWSE;
                    direction = MouseDirection.Southeast;
                }
                else if (e.Location.X <= 5 && e.Location.Y <= 5 )
                {
                    control.Cursor = Cursors.SizeNWSE;
                    direction = MouseDirection.Northwest;
                }
                
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值