您的位置:首页 > 其它

Control解决双击事件引发单击事件

2017-01-05 11:12 337 查看
有Winform开发中,有时某个Control控件鼠标单双击要进行不同的操作,在双击的时候会同时触发单击事件

解决方法如下:

通过加一个计时器来进行判断当前操作是单击还是双击

 #region 单双击事件

        private bool isFirstClick = true;

        private bool isDoubleClick = false;

        private int milliseconds = 0;

        private System.Windows.Forms.Timer doubleClickTimer = new System.Windows.Forms.Timer();

        void pic_MasterDrawing_MouseDown(object sender, MouseEventArgs e)

        {

            // 鼠标单击.

            if (isFirstClick)

            {

                isFirstClick = false;

                doubleClickTimer.Start();

            }

            // 鼠标双击

            else

            {

               

                isDoubleClick = true;

            }

        }

        void doubleClickTimer_Tick(object sender, EventArgs e)

        {

            milliseconds += 100;

            // 第二次鼠标点击超出双击事件间隔

            if (milliseconds >= SystemInformation.DoubleClickTime)

            {

                doubleClickTimer.Stop();

                if (isDoubleClick)

                {
//处理双击事件操作

                }

                else

                {
//处理单击事件操作
                }

                isFirstClick = true;

                isDoubleClick = false;

                milliseconds = 0;

            }

        }

        #endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: