C# 如何禁用双击winform按钮?
我不想让用户双击我的按钮。在第一次点击时,它应该被禁用,一旦我的代码被执行,我应该启用按钮。如何操作?您可以使用该属性。首先注册OnClick事件处理程序并将Enabled设置为false。然后开始计算并在完成后将Enabled恢复为true。如果计算需要很长时间才能完成,则应启动第二个线程。在这种情况下,您可能需要使用方法重新启用按钮。在C# 如何禁用双击winform按钮?,c#,winforms,C#,Winforms,我不想让用户双击我的按钮。在第一次点击时,它应该被禁用,一旦我的代码被执行,我应该启用按钮。如何操作?您可以使用该属性。首先注册OnClick事件处理程序并将Enabled设置为false。然后开始计算并在完成后将Enabled恢复为true。如果计算需要很长时间才能完成,则应启动第二个线程。在这种情况下,您可能需要使用方法重新启用按钮。在OnClick事件处理程序中,使第一条语句abutton.Enabled=false和最后一条语句anbutton.Enabled=true假设这是您正在谈论
OnClick
事件处理程序中,使第一条语句abutton.Enabled=false
和最后一条语句anbutton.Enabled=true代码>假设这是您正在谈论的winform,一旦禁用按钮,附加到它的事件将不会触发。(如果我从经验中没有记错的话)
解决方法是有两个按钮,一个启用,一个禁用。当用户单击第一个按钮时,您可以将其隐藏并显示禁用的按钮,使其看起来与禁用的按钮相同
然后,当您完成代码的执行后,只需重新显示第一个按钮并重新隐藏第二个按钮。在鼠标单击事件中make myButton.Enabled=false,并在代码结束时将其设置为true据我所知,您这样做的唯一目的是防止同一代码执行两次
为什么不在处理程序方法中使用类级布尔变量呢
如果设置了变量,则调用将返回,否则将执行代码-最终重置布尔变量。尝试以下操作:
button.Enabled = false;
....... do main processing here ............
Thread.Sleep(1000);
Application.DoEvents();
button.Enabled = true;