当前位置: 代码迷 >> C# >> C#按钮多次点击有关问题(急)
  详细解决方案

C#按钮多次点击有关问题(急)

热度:18   发布时间:2016-05-05 03:02:06.0
C#按钮多次点击问题(急)
我们做的是Winform程式,有一查询按钮查询比较多数据,用户在未执行完时,比较心急的用户会连续多次点击,结果程式也会执行多次,这样给网络和服务器造成一些不必要的开支,我代码如下。

        private void btn_QueryQ_Click(object sender, EventArgs e)
        {
            try
            {

                this.btn_QueryQ.Enabled = false;
                this.Cursor = Cursors.WaitCursor;
                Application.DoEvents();
                WinSrv.ExecuteNonQuery(" EXEC PLMS_ALogisticsPH_CHK 1,N'%" + myTextBox4.Text.Trim() + "%',N'%" + myComboBox1.Text.Trim() + "%',N'" + myDateTimePicker1.Value.ToString("yyyy-MM-dd 00:00") + "',N'" + myDateTimePicker2.Value.ToString("yyyy-MM-dd 23:59") + "' ,N'" + myTextBox1.Text.Trim() + "' ,N'' ,N'' ,N'' ,N'" + SessionAuth.UserID + "'", new object[] { });

                string strwhere = "UserID = N'" + SessionAuth.UserID + "'";
                if (strDepartment != "")
                {
                    strwhere += " and " + strDepartment;
                }
                strWhereM = strwhere;
                WinSrv.SelectDataSet(AppDataSet, strwhere);
                CalcDistanceDepart();
                myTextBox1.Focus();
            }
            catch (Exception ex)
            {
                MessageBoxShow(ex.Message + ex.StackTrace);
            }
            finally
            {
                this.btn_QueryQ.Enabled = true;
                this.Cursor = Cursors.Default;
            }
        }

------解决思路----------------------
这样子设置可能是不行,一个事件没影响完,所以设置为false没有效果。

用异步加设置。

Invoke(new Action(){
btn.Enable=false;
});
  相关解决方案