C#检查按钮是否第二次单击

问题描述 投票:0回答:3

我想检查是否用c#单击了按钮

喜欢这样

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

  //  if (btnFillo clicked again) {
        // do something
  //  }
}
c# if-statement button click
3个回答
0
投票

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

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


0
投票
      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;
      }

-1
投票

如果按钮具有单击事件,从而导致大量处理,则用户有可能在处理完成之前多次单击按钮(错误等)。

我找不到可以实现此目标的任何属性。我遵循以下解决方法之一。

选项1:

您还可以在单​​击按钮后立即禁用它,直到操作完成。

private void btnFillo_Click(object sender, EventArgs e)
{
    btnFillo.Enabled = false

    // Perform some operation

    btnFillo.Enabled = true
}

选项2:

如果您不认为这是过度杀伤力,那么您还可以为每个按钮创建一个属性,以检查按钮是否已被单击,如下面的代码所示。

private void button1_Click(object sender, EventArgs e)
{
    lock(someLock)
    {
        if( clickAlreadyEntered )
            return;
        else
            clickAlreadyEntered = true;
    }

    // Do the processing....


    lock(someLock)
    {
        clickAlreadyEntered = false;
    }
}

希望这可以帮助您找到适合您情况的正确答案。

© www.soinside.com 2019 - 2024. All rights reserved.