#region
|
|
using System.Drawing;
|
using System.Windows.Forms;
|
|
#endregion
|
|
namespace CSFramework.Library.CommonClass
|
{
|
/// <summary>
|
/// 拖动鼠标移动窗体Form通用类
|
/// </summary>
|
public class FormDragDrop
|
{
|
private Form _form;
|
private bool _IsMouseDown;
|
private Point _MouseOffset;
|
|
private FormDragDrop(Form form)
|
{
|
_form = form;
|
}
|
|
/// <summary>
|
/// 使用方法
|
/// </summary>
|
/// <param name="form"></param>
|
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;
|
}
|
}
|
}
|