C# 如何禁用双击winform按钮?

C# 如何禁用双击winform按钮?,c#,winforms,C#,Winforms,我不想让用户双击我的按钮。在第一次点击时,它应该被禁用,一旦我的代码被执行,我应该启用按钮。如何操作?您可以使用该属性。首先注册OnClick事件处理程序并将Enabled设置为false。然后开始计算并在完成后将Enabled恢复为true。如果计算需要很长时间才能完成,则应启动第二个线程。在这种情况下,您可能需要使用方法重新启用按钮。在OnClick事件处理程序中,使第一条语句abutton.Enabled=false和最后一条语句anbutton.Enabled=true假设这是您正在谈论

我不想让用户双击我的按钮。在第一次点击时,它应该被禁用,一旦我的代码被执行,我应该启用按钮。如何操作?

您可以使用该属性。首先注册OnClick事件处理程序并将Enabled设置为false。然后开始计算并在完成后将Enabled恢复为true。如果计算需要很长时间才能完成,则应启动第二个线程。在这种情况下,您可能需要使用方法重新启用按钮。

OnClick
事件处理程序中,使第一条语句a
button.Enabled=false
和最后一条语句an
button.Enabled=true

假设这是您正在谈论的winform,一旦禁用按钮,附加到它的事件将不会触发。(如果我从经验中没有记错的话)

解决方法是有两个按钮,一个启用,一个禁用。当用户单击第一个按钮时,您可以将其隐藏并显示禁用的按钮,使其看起来与禁用的按钮相同


然后,当您完成代码的执行后,只需重新显示第一个按钮并重新隐藏第二个按钮。

在鼠标单击事件中make myButton.Enabled=false,并在代码结束时将其设置为true

据我所知,您这样做的唯一目的是防止同一代码执行两次

为什么不在处理程序方法中使用类级布尔变量呢

如果设置了变量,则调用将返回,否则将执行代码-最终重置布尔变量。

尝试以下操作:

button.Enabled = false;
....... do main processing here ............ 
Thread.Sleep(1000);
Application.DoEvents();
button.Enabled = true;