所以我有一个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