如何禁用双击winform按钮?

时间:2010-04-22 08:16:11

标签: c# winforms

我不想让用户双击我的按钮。在第一次单击时,它应该被禁用,一旦我的代码被执行,我应该启用该按钮。怎么办?

6 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:3)

试试这个:

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

答案 2 :(得分:1)

OnClick事件处理程序中,将第一个语句设为button.Enabled = false;,将最后一个语句设为button.Enabled = true;

答案 3 :(得分:1)

假设这是一个你正在谈论的winform,一旦你禁用了按钮,附加到它的事件就不会触发。 (如果我从经验中记得正确的话)

解决这个问题的方法是有2个按钮,一个启用,一个禁用。当用户单击第一个按钮时,您可以隐藏它并显示已禁用的按钮,使其看起来像是同一个按钮被禁用。

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

答案 4 :(得分:1)

在您的鼠标Click事件中使Button.Enabled = false,并在代码的末尾使其成为真实

答案 5 :(得分:0)

据我所知,您打算这样做的唯一目的是阻止相同的代码执行两次。

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

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