在form上有一个按钮,有一个picturebox,本来的操作时:单击按钮,然后触发picturebox的mousedown事件,当mousedown事件被触发之后,才触发mousemove事件,但是不知道为什么,单击完按钮之后马上就触发mousemove事件了请哪位大侠忙我分析一下,谢谢!!

解决方案 »

  1.   

    private bool _isWrite = false;private void pictureBoxWrite_MouseDown(object sender, MouseEventArgs e)
            {
                //鼠标按下的时候开始写字
                _isWrite = true;
                time.Enabled = false;            //如果写完一个字,又开始写字
                if (_isRecognitionFinish)
                {
                    EventCommunicator.GetInstance().FireResultDispear(_isRecognitionFinish);
                    pictureBoxWrite_MouseMove(sender, e);
                }
            }        private void pictureBoxWrite_MouseMove(object sender, MouseEventArgs e)
            {
                //鼠标移动时写字            if (_isWrite)
                {
                    Point point = new Point(e.X, e.Y);                //保存写出的每一像素点的坐标
                    points[index++] = (short)point.X;
                    points[index++] = (short)point.Y;                if (lastpoint.X != 0)
                    {
                        g.DrawCurve(BlackPen, new Point[] { point, lastpoint });//写字
                    }
                    lastpoint = point;
                    pictureBox_Write.Refresh();
                }
            }                private void pictureBox_Write_MouseUp(object sender, MouseEventArgs e)
            {
                //鼠标抬起时停止写字
                _isWrite = false;
                time.Enabled = true;
                lastpoint.X = 0;            //设置每一笔画结束的标志
                points[index++] = -1;
                points[index++] = 0;            //开始计时
                time.Start();            //获取鼠标位置
                this.lastPosition = Cursor.Position;
               
            }
      

  2.   

    你在MouseDown中手工触发了pictureBoxWrite_MouseMove
    你跟踪一下代码的执行,应该是moveDown先执行的吧
      

  3.   

    跟踪了,确实是先执行的MouseMove啊
      

  4.   

    1 将鼠标移到按钮上
    2 点击按钮
    3 移动鼠标MoseDown在于MoseMove之后(1)