2012-12-17 74 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