我一开始尝试禁用按钮,但是由于该按钮不起作用,因此我创建了一个变量以防止它在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;
}
}
这应该解决它
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;
}
}