移動標籤我創建了一個標籤覆蓋,這將讓我的新的控制可以在屏幕上很容易被感動。拖放 - 中的WinForms
我已經把它貼下面的代碼,但是當我運行應用程序或嘗試移動標籤,它總是熄滅。它也有時會完全消失,留下蹤跡或重置到0,0位置。看看截圖。
我曾經有過這方面的工作100%,但近期一些調整後,它已經到狗又和我不知道如何得到它的工作。
截圖:
代碼:
internal sealed class DraggableLabel : Label
{
private bool _dragging;
private int _mouseX, _mouseY;
public DraggableLabel()
{
DoubleBuffered = true;
}
protected override void OnMouseMove(MouseEventArgs e)
{
if (_dragging)
{
Point mposition = PointToClient(MousePosition);
mposition.Offset(_mouseX, _mouseY);
Location = mposition;
}
base.OnMouseMove(e);
}
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
_dragging = true;
_mouseX = -e.X;
_mouseY = -e.Y;
BringToFront();
Invalidate();
}
base.OnMouseDown(e);
}
protected override void OnMouseUp(MouseEventArgs e)
{
if (_dragging)
{
_dragging = false;
Cursor.Clip = new Rectangle();
Invalidate();
}
base.OnMouseUp(e);
}
}
這正好說明你__should使用[版本控制(http://www.fortnet.org/FortNet/HTML/Presentation/CVS/whyvc.html)__以防止這樣的事情在將來發生。 [本教程](http://hginit.com/01.html)可能會幫助您開始。 – Adam 2011-12-23 11:13:37
這聽起來比'我曾經有過這方面的工作100%的有很大不同,但是最近的一些調整已經去了狗again'之後 - 你可以看到,它不會傷害一提的是在你的問題。 – Adam 2011-12-23 11:37:02