获取鼠标坐标不断,而鼠标移动onmousedown事件
我可以得到鼠标的坐标,当鼠标向下和向上的获取鼠标坐标不断,而鼠标移动onmousedown事件
private void panel2_MouseDown(object sender, MouseEventArgs e)
{
mouseClickedX = e.X;
mouseClickedY = e.Y;
}
private void panel2_MouseUp(object sender, MouseEventArgs e)
{
mouseReleaseX = e.X;
mouseReleaseY = e.Y;
}
但我需要不断的鼠标坐标,当鼠标向下移动,直到鼠标弹起。当鼠标移动时,我不需要坐标,但当鼠标停下并移动时,我需要坐标。怎么做?
编辑:
private void panel2_MouseMove(object sender, MouseEventArgs e)
{
while (isDragging) {
mouseMoveX = e.X;
mouseMoveY = e.Y;
label1.Text = mouseMoveX.ToString();
label2.Text = mouseMoveY.ToString();
}
}
我使用isDragging真或假onmosueup上下但这只是应用程序挂起。我应该使用计时器还是线程?
有一些事情你应该做的:
- 添加到您的类名为
bool isDragging
- 在鼠标按下处理私人布尔字段,设置
isDragging = true
和this.Capture = true
- 在mouseUp处理,设置
isDragging = false
和this.Capture = false
- 添加MouseMove处理程序。其中,检查
if (isDragging)
,如果它是真的,请按需要回复。您的MouseMove处理程序将随当前的鼠标坐标一起提供。
使用Capture
很重要,否则可能会丢失MouseMove和MouseUp消息。
请参阅编辑。我正在使用isDragging true或false onmosueup和down,但这只是挂起应用程序。我应该使用计时器还是线程? – asdfkjasdfjk 2013-04-05 18:57:19
将'while'改为'if'。 – 2013-04-05 19:38:53
您需要处理MouseMove
并检查鼠标是否关闭。
快速分析:尝试将'while'更改为if。 – LarsTech 2013-04-05 19:00:30
是的,你必须这样做! – 2013-04-05 19:39:33