0
끌기에 문제가 있습니다 & 드롭. 코드가 있습니다 :C# 드래그 앤 드롭 레이블
void labelWorker_MouseEvent(object sender, MouseEventArgs e)
{
Label labelWorker = (Label)sender;
labelWorker.DoDragDrop(labelWorker, DragDropEffects.Move);
labelWorker.MouseDown += new MouseEventHandler(labelWorker_MouseDown);
labelWorker.MouseMove += new MouseEventHandler(labelWorker_MouseMove);
labelWorker.MouseUp += new MouseEventHandler(labelWorker_MouseUp);
}
bool isDragged = false;
Point ptOffset;
void labelWorker_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Label labelWorker = (Label)sender;
isDragged = true;
Point ptStartPosition = labelWorker.PointToScreen(new Point(e.X, e.Y));
ptOffset = new Point();
ptOffset.X = labelWorker.Location.X - ptStartPosition.X;
ptOffset.Y = labelWorker.Location.Y - ptStartPosition.Y;
}
else
{
isDragged = false;
}
}
void labelWorker_MouseMove(object sender, MouseEventArgs e)
{
Label labelWorker = (Label)sender;
if (isDragged)
{
Point newPoint = labelWorker.PointToScreen(new Point(e.X, e.Y));
newPoint.Offset(ptOffset);
labelWorker.Location = newPoint;
}
}
void labelWorker_MouseUp(object sender, MouseEventArgs e)
{
Label labelWorker = (Label)sender;
isDragged = false;
}
레이블을 이동하려고하면 놀라기 시작합니다. 문제가 있다고 생각합니다.
void labelWorker_MouseMove(object sender, MouseEventArgs e)
{
Label labelWorker = (Label)sender;
if (isDragged)
{
Point newPoint = labelWorker.PointToScreen(new Point(e.X, e.Y));
newPoint.Offset(ptOffset);
labelWorker.Location = newPoint;
}
}
변경된 내용은 무엇입니까? 어떻게 그걸 해결 했니? –
나는 mouseup, mousemove 및 mousedown에 대한 새 코드를 작성했습니다. 마우스 왼쪽 버튼이 아무런 문제없이 작동 중일 때 마우스로 레이블이 움직입니다. – Kafus