相关疑难解决方法(0)

如何停止单击两次Windows窗体按钮

我在表单上有一个提交Web请求的Windows窗体按钮.我希望能够在第一次单击时禁用该按钮,然后在收到响应时重新启用它.我没有太多控制被调用的代码以及如何调用它所以我可以使用的是Button事件,或者我可以创建自己的按钮,继承自Button,如下所示:

public class SingleClickButton : Button
{
    protected override void OnClick(EventArgs e)
    {
        bool wasEnabled = this.Enabled;
        this.Enabled = false;

        if (wasEnabled)
        {
            base.OnClick(e);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我必须最后调用基本OnClick方法,因为在Web请求完成之前按钮不会禁用.

我遇到的问题是,如果用户多次单击,则单击事件似乎会累积并且仍然执行.有没有办法取消所有排队的活动?或者是否有一个更简单的解决方案来解决我的问题?

.net button winforms

1
推荐指数
1
解决办法
5325
查看次数

标签 统计

.net ×1

button ×1

winforms ×1