我有一个WinForm,其中包含一个按钮。在按钮的单击事件中,我调用button1.Enabled = false
,然后跟随多行代码。在此代码之后,我致电button1.Enabled = true
。
这样做是为了在执行执行时不能按下按钮。奇怪的是,当按钮被禁用时,如果用户多次点击该按钮,实际上会点击该按钮。
有人可以解释为什么会这样吗?代码如下所示:
button1.Enabled = false
//Code
//Code
//Code
button1.Enabled = true
答案 0 :(得分:1)
我们遇到了同样的问题,就像Jon提到的那样,这是因为我们在click事件中所做的工作阻止了UI。当UI恢复时,它会记录UI被阻止时发生的所有点击。
这是一个another answer from Stack Overflow,它提供了一些代码,说明如何解决问题。
答案 1 :(得分:1)
我在重新启用按钮
之前使用Application.DoEvents()解决了这个问题 AppButton.Enabled = false;
...
do some work
...
Application.DoEvents();
AppButton.Enable = true;