實現的功能: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;
}
}
}
}
附件例子下載:猛擊下載