实现的功能: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;
}
}
}
}
附件例子下载:猛击下载