条件为假时执行IF语句C#

时间:2020-06-06 16:55:46

标签: c# visual-studio

  • 我一开始尝试禁用按钮,但这没用
  • 因此,我创建了一个变量以防止其在IF中运行代码。由于某些奇怪的原因,它无法正常工作,当我尝试在睡眠之前单击它时,它会在时间结束后立即执行。

所以,如果我单击按钮

  • 一次睡眠2秒钟,
  • 如果我双击它,它将休眠4秒(等等),尽管它只能休眠2秒。

这应该使代码仅在再次启用按钮后才能执行。 (禁用的按钮仅用于外观)

注意:变量“ button_enabled”是全局的

 private void senha_b_Click(object sender, EventArgs e)
    {
        if (button_enabled == 1)
        {
            button_enabled = 0;
            wait_label.Show();
            senha_a.Enabled = false;
            senha_b.Enabled = false;
            senha_c.Enabled = false;

            System.Threading.Thread.Sleep(2000);

            wait_label.Hide();
            senha_a.Enabled = true;
            senha_b.Enabled = true;
            senha_c.Enabled = true;
            button_enabled = 1;
        }
    }

1 个答案:

答案 0 :(得分:2)

这应该解决

 private async void senha_b_Click(object sender, EventArgs e)
    {
        if (button_enabled == 1)
        {
            button_enabled = 0;
            wait_label.Show();
            senha_a.Enabled = false;
            senha_b.Enabled = false;
            senha_c.Enabled = false;

            await Task.Delay(2000);

            wait_label.Hide();
            senha_a.Enabled = true;
            senha_b.Enabled = true;
            senha_c.Enabled = true;
            button_enabled = 1;
        }
}