运行时通过拖拽动态改变控件的大小
2008-04-29 09:26 Virus-BeautyCode 阅读(1917) 评论(5) 编辑 收藏 举报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;
}
}
}
}
}
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;
}
}
}
}
}