2012-12-17 33 views
2

我正在其中每当有人按住鼠标键并拖动(酷似Windows画图)线将被绘制简单的绘图应用程序拖动鼠标。事件处理程序来检测图片框(的WinForms,C#)

但是我有一个很难找到这个合适的事件处理程序。当鼠标按下时,MouseDown根本不起作用,MouseClick只记下点。

在这个问题上需要帮助。

谢谢。

回答

9

处理MouseDown并将布尔变量设置为true。处理MouseMove,如果该变量设置为true并且鼠标的移动高于所需的阈值,则操作。处理MouseUp并将该变量设置为false。

例子:

bool _mousePressed; 
private void OnMouseDown(object sender, MouseEventArgs e) 
{ 
    _mousePressed = true; 
} 

private void OnMouseMove(object sender, MouseEventArgs e) 
{ 
    if (_mousePressed) 
    { 
     //Operate 
    } 
} 

private void OnMouseUp(object sender, MouseEventArgs e) 
{ 
    _mousePressed = false; 
} 
+0

谢谢你帮我。但为什么当我快速拖动它时会留下空间? – themis

+0

鼠标移动不会为其行进的距离上的每个点触发,只要可能,就会触发。尝试在你的点之间画一条线。 – timothy