所以我有一個PictureBox
和用戶應該拖動光標在箭頭所示的方向(在PictureBox
),但我不知道我將如何設置座標,以確保用戶拖入正確的方向(上,下,右,或左)。如何檢測拖動事件的方向?
private void picArrow_MouseDown(object sender, MouseEventArgs e)
{
mPointDown = new Point(e.X, e.Y);
//lblTest.Text = "X: " + mPointDown.X.ToString() + " Y: " + mPointDown.Y.ToString();
}
private void picArrow_MouseUp(object sender, MouseEventArgs e)
{
lblTest.Text += " " + " X: " + e.X.ToString() + " Y: " + e.Y.ToString();
//MessageBox.Show("Entered mouseup");
//rnd_Arr refers to the number of the arrow being shown, 0 = towards the right
if (rnd_Arr == 0 && mPointDown.X >= 0 && mPointDown.Y >= 0 && e.X >= 40 && e.Y >= 0)
{
//some code
}
else
{
MessageBox.Show("DONE!");
}
}
我知道這個代碼不工作,因爲即使用戶拖累(當他應該向上拖動),它仍然接受它,並增加了比分。
- 我沒有太多限制。它不一定非常直線,或者在確切位置開始和結束。只要用戶在
PictureBox
內部拖動並拖動到正確的方向,或者至少達到最小長度以確保用戶拖動到正確方向相當可觀,例如: 箭頭顯示的是指向右側。如果用戶拖動水平超過40px(並且箭頭的整個長度是80px),則用戶不必一直拖動箭頭,那麼這將爲他的分數增加一個點。儘管如此,我正在考慮這一部分,如果我只是要求更高的要求並且要求用戶一路拖下去。
我應該刪除
PictureBox
的鼠標事件,併爲表單添加鼠標事件嗎? 謝謝!
的可能重複[?我如何檢測鼠標移動到左側或右側(http://stackoverflow.com/questions/21734405/how-can -i-detect-if-the-mouse-is-being-moving-to-the-left-or-right) – Plutonix 2014-09-19 16:45:29