应该是简单的,但... :)暂时禁用按钮
我在表格上只有一个按钮。按钮调用一个函数,这需要10秒钟来执行(例如)。我希望在这段时间内暂时禁用按钮,这样如果用户在执行该功能时按下Enter键,则什么都不会发生。
但是现在它按照这种方式工作:用户按Enter键,该按钮被禁用。在这10秒钟内,用户再次按Enter键,当第一个功能结束时,它再次被调用。我想防止这种情况发生,所以只有当按钮被再次启用时,Enter键才会起作用。一切都在同一个线程中。
我的代码:
private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine("Click");
button1.Enabled = false;
Thread.Sleep(3000); // simulate something...
button1.Enabled = true;
button1.Focus();
}
编辑:函数打印一些打印机。通过打印机的API函数,我可以确定打印何时完成,只有这样才能再次启用按钮。
你试过了** this.AcceptButton = null **,并且在完成设置后** this.AcceptButton = button1 **除了切换**启用** – V4Vendetta 2011-04-07 11:20:48
函数做了什么? – jfs 2011-04-07 11:27:12
@ V4Vendetta - 没有区别。 – sventevit 2011-04-07 11:27:24