C# 用For循环C单击按钮时的标签增量#

C# 用For循环C单击按钮时的标签增量#,c#,winforms,for-loop,label,increment,C#,Winforms,For Loop,Label,Increment,我试图让一个标签增加1与每个按钮点击多达5,然后恢复到1,并重新开始。但是,我似乎没有正确地输入for循环。有人能指出我哪里出了问题吗?对C#来说非常陌生 private void bttnAdd\u单击(对象发送者,事件参数e) { int-bet=1; 如果(下注

我试图让一个标签增加1与每个按钮点击多达5,然后恢复到1,并重新开始。但是,我似乎没有正确地输入for循环。有人能指出我哪里出了问题吗?对C#来说非常陌生

private void bttnAdd\u单击(对象发送者,事件参数e)
{
int-bet=1;
如果(下注<6)
{

对于(int bet=1;bet,如果我了解您的需求:

int bet = 1;
bool increase=true;
private void bttnAdd_Click(object sender, EventArgs e)
{
   if(increase){
      bet++;
      lblBet.Text = "" + bet;
   }
   else{
       bet--;
       lblBet.Text = "" + bet;
   }
   if(bet==5 || bet==1)
   {
       increase=!increase;
   }
}

单击按钮时,您可以更改标签的值,增加其当前值。
此解决方案使用



解释%运算符
“%运算符在第一个操作数除以第二个操作数后计算余数”
因此,在这种情况下,结果将是:

int currentValue = 1;
int remainderCurrentValue = currentValue % 5; // Equals 1
int increasedCurrentValue = remainderCurrentValue + 1; // Equals 2
当当前值为5时,这将发生:

int currentValue = 5;
int remainderCurrentValue = currentValue % 5; // Equals 0
int increasedCurrentValue = remainderCurrentValue + 1; // Equals 1

最有可能的情况是,您的业务逻辑需要标签的值——下注。我认为您应该为它设置一个私有变量,从button onclick事件中增加它,然后将其复制到标签文本框中

            private void bttnAdd_Click(object sender, EventArgs e)
            {
                int bet = int.Parse(lblBet.Text);
                lblBet.Text = bet<5 ? ++bet : 1;
            }
private void bttnAdd\u单击(对象发送者,事件参数e)
{
int bet=int.Parse(lblBet.Text);
lblBet.Text=bet试试这个:

    int bet = 1;

    private void button1_Click(object sender, EventArgs e)
    {
        bet++;

        if (bet == 6)
            bet = 1;                

        lblBet.Text = bet.ToString();
    }
需要在函数外部声明Bet变量。

您可以尝试以下操作:

static int count=0;// Global Variable declare somewhere at the top 

protected void bttnAdd_Click(object sender, EventArgs e)
        {
            count++;

            if (count > 6)
            {
                lblBet.Text = count.ToString();
            }
            else
            {
                count = 0;
            }
        }

不需要for循环。在按钮外初始化下注单击:

int bet = 1;
private void bttnAdd_Click(object sender, EventArgs e)
{


   if (bet <= 6)
   {
       this.bet++;
       lblBet.Text = bet.toString();
   }

}
int-bet=1;
私有void bttnAdd_单击(对象发送者,事件参数e)
{

如果(无法看到标签更改其文本。只有在退出事件处理程序后才会更新标签。for循环的目的是什么?迭代太快了,你看不到它。对于循环没有意义,只需使用一个以1开头的grobal变量,每次用户单击按钮时,只需将变量添加为1,或重置它即可如果值是6,非常感谢。我删除了for循环。我忽略了它不会在每次增量之间暂停。这非常有效,减去它重置为0而不是1。@sploosh4snootch是的,我的不好!我写了错误的算法…但是我编辑了我的答案,现在应该做这项工作了。我道歉。我在刷新之前回答了以查看您的编辑。再次感谢!效果非常好。
static int count=0;// Global Variable declare somewhere at the top 

protected void bttnAdd_Click(object sender, EventArgs e)
        {
            count++;

            if (count > 6)
            {
                lblBet.Text = count.ToString();
            }
            else
            {
                count = 0;
            }
        }
int bet = 1;
private void bttnAdd_Click(object sender, EventArgs e)
{


   if (bet <= 6)
   {
       this.bet++;
       lblBet.Text = bet.toString();
   }

}