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

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

我一开始尝试禁用按钮,但是由于该按钮不起作用,因此我创建了一个变量以防止它在IF中运行代码,出于某种奇怪的原因,当我尝试在睡眠前单击按钮时,该按钮不起作用它在时间结束后立即执行。

因此,如果我单击1次,它将休眠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;
        }
    }
c# visual-studio
1个回答
0
投票

这应该解决它

 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;
        }
}
© www.soinside.com 2019 - 2024. All rights reserved.