using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication11


{
public partial class Form1 : Form

{
private int oldx;
private int oldy;

enum mPosition

{
left,
right,
top,
bottom
}
private mPosition adjust;
public Form1()

{
InitializeComponent();
}


private void button1_MouseDown(object sender, MouseEventArgs e)

{
oldx = e.X;
oldy = e.Y;
}

private void button1_MouseMove(object sender, MouseEventArgs e)

{
Rectangle rectLeft = new Rectangle(0, 2, 2, button1.Height - 4);
Rectangle rectRight = new Rectangle(button1.Width - 2, 2, 2, button1.Width);
Rectangle rectTop = new Rectangle(2, 0, button1.Width - 4, 2);
Rectangle rectBottom = new Rectangle(2, button1.Height - 2, button1.Width - 4, 2);

if (rectLeft.Contains(e.X, e.Y))

{
adjust = mPosition.left;
button1.Cursor = Cursors.SizeWE;

}
else if (rectRight.Contains(e.X, e.Y))

{
adjust = mPosition.right;
button1.Cursor = Cursors.SizeWE;
}
else if (rectTop.Contains(e.X, e.Y))

{
adjust = mPosition.top;
button1.Cursor = Cursors.SizeNS;
}
else if (rectBottom.Contains(e.X, e.Y))

{
adjust = mPosition.bottom;
button1.Cursor = Cursors.SizeNS;
}
else

{
button1.Cursor = Cursors.Default;
}
}

private void button1_MouseUp(object sender, MouseEventArgs e)

{
if (e.Button == System.Windows.Forms.MouseButtons.Left)

{
int dx = e.X - oldx;
int dy = e.Y - oldy;
switch (adjust)

{
case mPosition.left:
button1.Left += dx;
button1.Width -= dy;
break;
case mPosition.right:
button1.Width += dx;
break;
case mPosition.top:
button1.Top += dy;
button1.Height -= dy;
break;
case mPosition.bottom:
button1.Height += dy;
break;

}
}

}


}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构