基本逻辑:
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; }