记录最后一个鼠标按钮事件

本文关键字:事件 按钮 鼠标 最后一个 记录 | 更新日期: 2023-09-27 17:51:22

如何记录上次鼠标点击?

我有一个程序,其中我有一个名为red_balloon和green_balloon的图像。

我给用户分数取决于他们是否按正确的顺序点击气球,red_balloon然后green_balloon。

如果顺序不正确,他们将失去一分。

所以我需要一种方法来记录最后一次点击,有没有一种简单的方法来做到这一点。

这是目前为止我的代码…

XAML代码

<Image Height="53" HorizontalAlignment="Left" Margin="0,0,0,0" x:Name="red_balloon" Stretch="Fill" VerticalAlignment="Top" Width="48" Source="red.png" MouseLeftButtonDown="redballoon_click" Canvas.Left="194" Canvas.Top="161" RenderTransformOrigin="0.938,0.536" />
<Image Height="53" HorizontalAlignment="Left" Margin="0,0,0,0" x:Name="green_balloon" Stretch="Fill" VerticalAlignment="Top" Width="48" Source="green.png" MouseLeftButtonDown="redballoon_click" Canvas.Left="194" Canvas.Top="161" RenderTransformOrigin="0.938,0.536" />
c#代码

 private void greenballoon_click(object sender, MouseButtonEventArgs e)
        {
            if (last_click =="red_balloon") // need a way to identify the last click was red_balloon
             { 
                 PopBalloonCount++;
             }
            else 
             { 
                 PopBalloonCount--;
             }
            score.Content = "Your Score" + " " + Convert.ToString(PopBalloonCount);
        }

记录最后一个鼠标按钮事件

您需要以下几样东西:

1)在类的顶部添加变量a来显示最后一次点击的值。您可以决定变量的最佳类型,但为了简单起见,这里我将使用string:

public class xxx {
    Private string last_click = null;

2)在红色气球的click事件中,赋值给变量:

private void redballoon_click(object sender, MouseButtonEventArgs e) {
    last_click = "red_balloon";
}

3)在click事件中,如果出现绿色气球,现在可以检查变量的值,并且不要忘记将新值赋给变量:

private void greenballoon_click(object sender, MouseButtonEventArgs e) {
    if (last_click =="red_balloon")
    { 
        PopBalloonCount++;
    }
    else 
    { 
        PopBalloonCount--;
    }
    last_click = "green_ballon";
    score.Content = "Your Score" + " " + Convert.ToString(PopBalloonCount);
}

为什么不将最后一次气球单击的颜色存储在与处理程序相同的类中的实例变量中呢?

// I've used a string here to match your posted code. However, you would likely
// be better off with a "BalloonType" enum
private string lastBalloonClickColor;
 private void greenballoon_click(object sender, MouseButtonEventArgs e)
        {
            if (this.lastBalloonClickColor =="red_balloon")
             { 
                 PopBalloonCount++;
             }
            else 
             { 
                 PopBalloonCount--;
             }
            score.Content = "Your Score" + " " + Convert.ToString(PopBalloonCount);
            this.lastBalloonClickColor = "green_balloon"; // register the last click
        }
 private void redballoon_click(object sender, MouseButtonEventArgs e)
        {
            if (this.lastBalloonClickColor =="green_balloon")
             { 
                 PopBalloonCount++;
             }
            else 
             { 
                 PopBalloonCount--;
             }
            score.Content = "Your Score" + " " + Convert.ToString(PopBalloonCount);
            this.lastBalloonClickColor = "red_balloon"; // register the last click
        }

使用布尔值如何?如果你不需要超过2种可能性(=气球),一个布尔值将非常适合。

如果需要两个以上的可能性,请使用枚举。