【问题标题】:Clicker counter increase/decrease issueClicker 计数器增加/减少问题
【发布时间】:2018-01-31 16:07:30
【问题描述】:

我最近在我的点击器计数器上做了这个,目前当点击按钮 BR 时,它将向 BR 添加 30,向 RB 添加 10。同样,当我单击 RB 时,它将向 RB 添加 30,向 BR 添加 10。我目前发现的问题是,当我减少数量时,它并没有完全按照我的意愿去做。目前它的工作方式是说BR为30,RB为10,如果我右键单击BR,它将从BR中扣除30,从RB中扣除10,如果BR中有10,RB中有30,我右键单击RB它将从 BR 中扣除 10 并从 RB 中扣除 30 但是如果计数是 BR 中的 40 和 RB 中的 40 (两个按钮都单击一次),我可以右键单击任一按钮,它将减少第一个 30/10 但在那个然后留下30,如果反复右键,它会继续并继续减少10。

这是一个 GIF 显示它计数正常(左键单击) https://gyazo.com/264cc772ac2ac4d1765c92aab34221c1

这是一个显示问题的 GIF(按钮正在被右键单击) https://gyazo.com/4a4484d1e78f8fa0e4e2c5c3af0a54a1

这是我使用的int:

int BRcount = 0;
int RBcount =0;

这是使用的代码:

private void BR_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            BRcount += 30;
            RBcount += 10;
            BRT.Text = BRcount.ToString();
            RBT.Text = RBcount.ToString();
        }
        else if (e.Button == MouseButtons.Right)
        {
            if (BRcount >=30)
                BRcount -= 30;
            if(RBcount >=10 && BRcount >=30)
                RBcount -= 10;
                BRcount -= 30; //Was missing this, (copy and paste messed up, issue still present)
            BRT.Text = BRcount.ToString();
            RBT.Text = RBcount.ToString();
        }
    }
    private void RB_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            RBcount += 30;
            BRcount += 10;
            RBT.Text = RBcount.ToString();
            BRT.Text = BRcount.ToString();
        }
        else if (e.Button == MouseButtons.Right)
        {
            if (RBcount >=30 && BRcount >=10)
                RBcount -= 30;               
                BRcount -= 10;
            RBT.Text = RBcount.ToString();
            BRT.Text = BRcount.ToString();
        }

我试图使其工作的方式是,可以单击任一按钮分别增加 30 + 10,并以相同的方式减少。

(请不要犹豫,提出问题以进一步解释,因为我知道这看起来有点令人困惑)

【问题讨论】:

    标签: c# counter countdown


    【解决方案1】:

    看起来您在代码的最后部分缺少一些荣誉:

    else if (e.Button == MouseButtons.Right)
    {
        if (RBcount >=30 && BRcount >=10)
            RBcount -= 30;               
            BRcount -= 10;
        RBT.Text = RBcount.ToString();
        BRT.Text = BRcount.ToString();
    }
    

    应该是这样的

    else if (e.Button == MouseButtons.Right)
    {
        if (RBcount >=30 && BRcount >=10)
        {
            RBcount -= 30;               
            BRcount -= 10;
        }
        RBT.Text = RBcount.ToString();
        BRT.Text = BRcount.ToString();
    }
    

    【讨论】:

    • 对不起,我的错,代码的复制/粘贴剪切了它,它已修复并且该部分存在问题。
    • @Matthew 您在两个 MouseDown 处理程序中都缺少括号。你还有没有解决他们两个的问题?
    【解决方案2】:

    您的代码中似乎缺少一些括号。

    你写的,

    if (RBcount >= 10 && BRcount >= 30)
        RBcount -= 10;
        BRcount -= 30;
    

    如果没有括号,if 语句将只执行以下行,而不管缩进。所以,它实际上会这样做,

    if (RBcount >= 10 && BRcount >= 30)
        RBcount -= 10;
    BRcount -= 30;
    

    我想你想要的,

    if (RBcount >= 10 && BRcount >= 30)
    {
        RBcount -= 10;
        BRcount -= 30;
    }
    

    完整的代码就变成了,

    private void BR_MouseDown(object sender, MouseEventArgs e)
    {
      if (e.Button == MouseButtons.Left)
      {
        BRcount += 30;
        RBcount += 10;
        BRT.Text = BRcount.ToString();
        RBT.Text = RBcount.ToString();
      }
      else if (e.Button == MouseButtons.Right)
      {
        if (BRcount >= 30)
          BRcount -= 30;
        if (RBcount >= 10 && BRcount >= 30)
        {
          RBcount -= 10;
          BRcount -= 30;
        }
        BRT.Text = BRcount.ToString();
        RBT.Text = RBcount.ToString();
      }
    }
    
    private void RB_MouseDown(object sender, MouseEventArgs e)
    {
      if (e.Button == MouseButtons.Left)
      {
        RBcount += 30;
        BRcount += 10;
        RBT.Text = RBcount.ToString();
        BRT.Text = BRcount.ToString();
      }
      else if (e.Button == MouseButtons.Right)
      {
        if (RBcount >= 30 && BRcount >= 10)
        {
          RBcount -= 30;
          BRcount -= 10;
        }
        RBT.Text = RBcount.ToString();
        BRT.Text = BRcount.ToString();
      }
    }
    

    【讨论】:

    • 非常感谢它现在完美运行 :D 现在我的第一个应用程序几乎完成了哈哈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多