Public class DragControl
{
Private Control _ drag = null;
Private Control _ move = null;
Private Cursor _ oldCursor = null;
Private int initialX;
Private int initialY;
Private DragControl (){}
Public DragControl (Control drag, Control move)
{
_ Drag = drag;
_ Move = move;
}
Public DragControl (Control dragControl): this (dragControl, dragControl ){}
Public void CloseDrag ()
{
_ Drag. Cursor = _ oldCursor;
_ Drag. MouseDown-= MoveTipDown;
}
Public void OpenDrag ()
{
_ OldCursor = _ drag. Cursor;
_ Drag. Cursor = Cursors. SizeAll;
_ Drag. MouseDown + = MoveTipDown;
}
Private void MoveTipDown (object sender, MouseEventArgs e)
{
InitialX = e. X;
InitialY = e. Y;
_ Drag. MouseMove + = MoveTipMove;
_ Drag. MouseUp + = MoveTipUp;
}
Private void MoveTipUp (object sender, MouseEventArgs e)
{
_ Drag. MouseMove-= MoveTipMove;
_ Drag. MouseUp-= MoveTipUp;
}
Private void MoveTipMove (object sender, MouseEventArgs e)
{
If (e. Y! = InitialY) _ move. Top = _ move. Top + (e. Y-initialY );
If (e. X! = InitialX) _ move. Left = _ move. Left + (e. X-initialX );
}
}