如果用户点击过快的话会否有意外,谢谢! private void button5_Click(object sender, EventArgs e)
        {            
            button5.Enabled = false;。。
        }

解决方案 »

  1.   

    private void button5_Click(object sender, EventArgs e) 
    button5.Enabled = false; 
    防止双击。。
    if(button5.Enabled)
    {
    //要执行的内容,
    }
    }
      

  2.   


    这样是肯定不行的
    应该在button5客户端事件onclientclick事件中设置。
      

  3.   

    不知道楼主的是Web还是winForm,要是WinForm的话倒还可以
    如果是Web的话是不可以的,因为你这个按钮事件是在服务器端执行的,要是服务器端还没有来得及回发处理结果,实际上这个时候button还是可用的,用户照样可以再点击一次到多次。
    解决思路:
    用客户端js脚本控制,首先想到的是给按钮加上onclick事件:“this.disabled=true”,
    试验证明这样貌似不可取,这样设置好像就提交不到服务器了。
    在换一种思路
    放一个隐藏域,给它的默认值设置成 0 : 如这样写:<input id="IsSubmited" name="IsSubmited" value="0" type="hidden"/><span id="SpanMsg" style="color:red;"></span>
    然后给你的提交button5按钮加
    btnLogin.Attributes.Add("onclick", "javascript:if(document.getElementById('IsSubmited').value==0){document.getElementById('IsSubmited').value=1;}else{document.getElementById('SpanMsg').innerHTML='正在提交中...';return false;}")
    下面来分析一下这样做的可行性:如果隐藏域是0,则说明尚未提交,这个时候点击提交了,同时把这个隐藏域的值设置为1;如果这个时候服务器尚未回发的话,当用户再点击的时候就给用户一个提示,然后return false;就是点了也等于没点。当服务器回发的时候就是要刷新页面,刷新页面的时候就又把这个隐藏域变成0了。
    说了这么多要是楼主问的不是web的,那我就哭啦。
      

  4.   

    比较傻的方法
    用js
    放一个button然后放一个html的button,默认为禁用隐藏,点击button后,隐藏自身,显示那个html的button.
      

  5.   


    听起来不错哦,也就说用户点击过button后,第二次看到的就是html的button了,偷梁换柱了
      

  6.   

    private void button5_Click(object sender, EventArgs e)
            {           
                button5.Enabled = false;。。
                button5.Enabled = true;
            }那么在点击事件结束之前,按钮就不能点了
      

  7.   

    用以下的更好.刚刚写的..测试成功.
    <div>
                <asp:Button ID="btn" runat="server" Text="What time is it, please!"  OnClientClick="return stop(this)"
                OnClick="btn_Click" />
                <br />
                <asp:Label ID=Label1 runat=server></asp:Label>
            </div>
            
            
            <script type="text/javascript">
                function stop(par)
                {
                    setTimeout("$('#"+par.id+"').attr('disabled','disabled')",1);
                    return true;
                }
            </script>
      

  8.   

    如果是C/S程序的话。这样是可以的。。如果你不放心的话可以做一些判断。。如是false的话。你可以提示用户吗。。message.show("不可用");
    如果是B/s程序的话就采用6楼的解决方案吧。。
      

  9.   

    确实针对的是winform程序,大家都觉得不会出问题?
      

  10.   

    即便是WinForm的也会有问题,特别是你后面的处理是很耗费资源的情况。
    我建议,要么button5.Enabled = false; 后面加上
    Application.DoEvents();
    要么调用多线程来做后续操作。
    不然后续操作很可能堵塞禁用按钮的操作,导致用户多次点击。
      

  11.   

    如果是CS 的,不会出现问题。如果是BS 的,那么最好在后台加限定~~~
      

  12.   

    最好用JS来写。用JS来将BUTTON致灰