【发布时间】:2014-09-20 01:02:23
【问题描述】:
所以我有一个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内拖动并拖动到正确的方向,或者至少达到最小长度以确保用户拖动到正确的方向是相当大的,例如: 所示箭头指向右侧。用户不必一直拖动箭头,如果他水平拖动超过 40 像素(并且箭头的整个长度为 80 像素),那么这将为他的分数加分。不过,我正在考虑这部分,如果我应该要求更高并要求用户一直拖动。
我应该删除
PictureBox的鼠标事件并改为为表单添加鼠标事件吗? 谢谢!
【问题讨论】:
标签: c# mouseevent mousedown mouseup