Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 鼠标向下移动_C#_Mouse - Fatal编程技术网

C# 鼠标向下移动

C# 鼠标向下移动,c#,mouse,C#,Mouse,怎么了 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 positi

怎么了

    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");
     }
    }
private void pictureBox1\u MouseUp(对象发送器,MouseEventArgs e)
{
位置x=e.Location.x;
位置y=e.Location.y;
}
私有void pictureBox1\u MouseDown(对象发送方,MouseEventArgs e)
{
int position_x_next=e.Location.x;
int position_y_next=e.Location.y;
if(位置x下一步<位置x)
{
MessageBox.Show(“它向左移动”);
}
}

您应该每次都检查按钮,查看按钮何时按下并捕获X和Y坐标-如果X坐标小于上次,您可以判断它正在向左移动。

您需要跟踪鼠标的上一个位置和新位置

创建两个新变量,
mouseIsDown
previousMouseX

MouseDown
处理程序中,将
mouseIsDown
设置为
true
previousMouseX
设置为
mouse.x
并在
MouseUp
处理程序中将其设置为
false


然后,添加一个
MouseMove
处理程序,检查
previousMouseX
是否大于
mouse.x
。如果是这样,鼠标将向左移动。请务必在此处更新
previousMouseX

实际上它非常简单。存储上次移动事件中的位置(位于
e
参数中)。然后将当前位置与上一个位置进行比较。如果它的X坐标在左边,它就会向左移动

例如,如果要区分向左移动和斜向左向上移动,则应添加一个条件,以检查Y轴的变化是否小到足以解释用户的不精确性。

俗气的方法:

在鼠标按下事件IsMouseDown=true中设置一个标志。 在鼠标移动事件中,检查IsMouseDown==true
在MouseUp set IsMouseDown=true中

鼠标移动事件和传递X和Y坐标如何