【问题标题】:C# Checking if button was clicked on second timeC#检查按钮是否被第二次点击
【发布时间】:2020-05-23 19:55:45
【问题描述】:

我想用c#检查一个按钮是否被点击

喜欢这个

private void btnFillo_Click(object sender, EventArgs e)
{
    btnFillo.Text = "text";

  //  if (btnFillo clicked again) {
        // do something
  //  }
}

【问题讨论】:

标签: c# if-statement button click


【解决方案1】:
      private int  clickCounter = 0;
      private void btnFillo_Click (object sender, EventArgs e) {
         btnFillo.Text = "text";

         if (clickCounter >= 1) {
         // do something
         clickCounter = 0;
         }
         else  clickCounter += 1;
      }

如果您只想在第二次点击时执行某项操作,只需使用布尔值:

      private bool  isClicked = false;
      private void btnFillo_Click (object sender, EventArgs e) {
         btnFillo.Text = "text";

         if (isClicked) {
         // do something
            isClicked = false;
         } else isClicked = true;
      }

【讨论】:

  • 感谢代码,你能解释一下它的逻辑吗?请
  • 逻辑很简单,但是:在用户点击按钮之前,全局isClicked 始终为假。当用户第一次单击时,我们将 isClicked 的值更改为 true。所以下次你的 if 条件起作用时......在你的 if 条件结束时,当第二次点击完成它的工作时,我们再次将 isClicked 状态重置为 false......
  • @GassalamFrans 你保留了一个布尔(真或假)变量。第一次单击时,isClicked 为 false,因此 if (isClicked) 表达式将为 false,并且它设置的语句不会运行。然后将isClicked 设置为true。现在,当用户第二次单击该按钮时,if (isClicked) 表达式将为真,语句将运行。
  • @AliReza,TheBatman 感谢两位的出色解释。非常感谢。
  • @AliReza 感谢您的反馈!声望低于 15 人的投票会被记录,但不会更改公开显示的帖子得分。
【解决方案2】:

您必须将点击保存在全局变量中,例如

clicked += 1

其中 clicked 变量是全局变量 (var clicked = 0)。之后:

if(clicked > 1)

或使用 Control.MouseDoubleClick 事件:https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.mousedoubleclick?redirectedfrom=MSDN&view=netframework-4.8

【讨论】:

    【解决方案3】:

    感谢大家的帮助 我解决了我的问题... 如果他们需要,我将代码发布给其他人。

    private int clickCounter = 0;
            private void btnFillo_Click(object sender, EventArgs e)
            {
    
                if(clickCounter == 0 ) {
                    // first time click
                    btnFillo.Text = "text";
                    clickCounter++;
                }
                else if (clickCounter == 1)
                {
                    // second time click
                    btnFillo.Text = "heeeeellll";
                    clickCounter++;
                }
                else if (clickCounter == 2)
                {
                    // third time click
                    btnFillo.Text = "change 2";
                    clickCounter = 0;
                }
                else // you can do more if you want more clicks
                {
                    clickCounter += 1;
    
                }
            }
    

    【讨论】:

      猜你喜欢
      • 2013-05-09
      • 2021-03-08
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 2014-12-28
      相关资源
      最近更新 更多