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; } } } }}