它出了什么问题?
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");
}
}
答案 0 :(得分:2)
您需要跟踪鼠标的先前位置和新位置。
创建2个新变量,mouseIsDown
和previousMouseX
。
在MouseDown
处理程序中,将mouseIsDown
设置为true
,将previousMouseX
设置为mouse.x
,并将其设置为false
MouseUp
处理程序。
然后,添加MouseMove
处理程序,检查previousMouseX
是否大于mouse.x
。如果是这样,鼠标向左移动。请务必在此处更新previousMouseX
。
答案 1 :(得分:1)
你应该每次检查MouseEventArgs
以查看按钮何时关闭并捕获X和Y坐标 - 如果X坐标小于上次坐标,您可以告诉它向左移动
答案 2 :(得分:0)
实际上这很简单。存储它在最后一次移动事件中的位置(它在e
参数中)。然后将当前位置与最后一个位置进行比较。如果它的X坐标在左边,它就会向左移动。
例如,如果要区分移动的左对角线和左对角移动区域,则应添加条件以检查Y轴的变化是否足够小以解决用户不精确问题。
答案 3 :(得分:0)
俗气的方式:
在鼠标按下事件IsMouseDown = true中设置一个标志。 在鼠标移动事件中检查IsMouseDown == true 在MouseUp中设置IsMouseDown = true
答案 4 :(得分:0)