#region
using System.Drawing;
using System.Windows.Forms;
#endregion
namespace CSFramework.Library.CommonClass
{
///
/// 拖动鼠标移动窗体Form通用类
///
public class FormDragDrop
{
private Form _form;
private bool _IsMouseDown;
private Point _MouseOffset;
private FormDragDrop(Form form)
{
_form = form;
}
///
/// 使用方法
///
///
public static void Handle(Form form)
{
var F = new FormDragDrop(form);
F.HandleEvents();
}
private void HandleEvents()
{
_form.MouseDown += On_MouseDown;
_form.MouseMove += On_MouseMove;
_form.MouseUp += On_MouseUp;
}
private void On_MouseDown(object sender, MouseEventArgs e)
{
int xOffset;
int yOffset;
if (e.Button == MouseButtons.Left)
{
xOffset = -e.X;
yOffset = -e.Y;
_MouseOffset = new Point(xOffset, yOffset);
_IsMouseDown = true;
}
}
private void On_MouseMove(object sender, MouseEventArgs e)
{
if (_IsMouseDown)
{
var mousePos = Control.MousePosition;
mousePos.Offset(_MouseOffset.X, _MouseOffset.Y);
_form.Location = mousePos;
}
}
private void On_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) _IsMouseDown = false;
}
}
}