C# WinForm 实现控件可拖拽
实现的功能:WinForm窗体中让控件可以随便拖动;类似于BS中弹出可拖动的层一样;
界面如图:
直接上代码:
namespace DropControlDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private bool isMouseDown = false;
private Point mouseOffset; //记录鼠标指针的坐标
private void pan_Drop_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOffset.X = e.X;
mouseOffset.Y = e.Y;
isMouseDown = true;
}
}
private void pan_Drop_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
int left = pan_Drop.Left + e.X - mouseOffset.X;
int top = pan_Drop.Top + e.Y - mouseOffset.Y;
pan_Drop.Location = new Point(left, top);
}
}
private void pan_Drop_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private bool isMouseDown = false;
private Point mouseOffset; //记录鼠标指针的坐标
private void pan_Drop_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOffset.X = e.X;
mouseOffset.Y = e.Y;
isMouseDown = true;
}
}
private void pan_Drop_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
int left = pan_Drop.Left + e.X - mouseOffset.X;
int top = pan_Drop.Top + e.Y - mouseOffset.Y;
pan_Drop.Location = new Point(left, top);
}
}
private void pan_Drop_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
}
}
附件例子下载:猛击下载
作者:郑某人
出处:http://jsonzheng.cnblogs.com
欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望你能推荐或关注。