2010-11-02 117 views
1

它有什麼問題?鼠標向下移動

private void pictureBox1_MouseUp(object sender, MouseEventArgs e) 
    { 
     position_x = e.Location.X; 
     position_y = e.Location.Y; 
    } 

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e) 
    { 
    int position_x_next = e.Location.X; 
    int position_y_next = e.Location.Y; 

    if (position_x_next < position_x) 
    { 
     MessageBox.Show("it moved left"); 
    } 
    } 

回答

1

您應該檢查每次MouseEventArgs看到當按鈕向下,捕捉X和Y座標 - 你能告訴我們,如果X座標小於這是最後一次被左移。

2

您需要跟蹤鼠標的前一個位置和新位置。

創建2個新變量,mouseIsDownpreviousMouseX

在你MouseDown處理程序中,設置mouseIsDowntruepreviousMouseXmouse.x,它在MouseUp處理程序設置爲false

然後,添加一個MouseMove處理程序,該處理程序檢查previousMouseX是否大於mouse.x。如果是這樣,鼠標正在向左移動。請務必在這裏更新previousMouseX

0

實際上這很簡單。存儲它在上次移動事件中的位置(它在e參數中)。然後比較當前位置和最後一個位置。如果其X座標向左移動,則向左移動。

例如,如果您想區分左對齊移動,您應該添加一個條件來檢查Y軸的變化是否足夠小以解釋用戶不精確。

0

俗氣方式:

在鼠標按下事件IsMouseDown = true設置的標誌。 在鼠標移動事件檢查,如果IsMouseDown ==真 在設定的MouseUp = IsMouseDown真正