我想实现的是在picturebox1中,鼠标点击的时候画出小圆点,鼠标抬起之后该点还在,
我的代码是鼠标点击的一瞬即显示出小点,可是一旦鼠标抬起,点又不见了,这个要怎么解决呢?
还有加入我每画5个点之后这五个点都消失,这个怎么实现呢?
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            Graphics g = ((PictureBox)sender).CreateGraphics();
            g.FillEllipse(Brushes.Black, currentPoint.X, currentPoint.Y, 4, 4);
            g.Dispose();      
        }

解决方案 »

  1.   


      g.FillEllipse(Brushes.Black, currentPoint.X, currentPoint.Y, 4, 4);把X,Y 换成 e.X,e.Y试试 
      

  2.   

    g.FillEllipse(Brushes.Black, currentPoint.X, currentPoint.Y, 4, 4);
    +1
    给它加点颜料(*^__^*) 
      

  3.   

    必须要放在 Paint 处理事件里头。
      

  4.   

      List<Point> m_lsPoints;  public Form1()
      {
          m_lsPoints = new List<Point>();
      }
     // 处理鼠标点击事件
         private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
            {
                
                Graphics g = ((PictureBox)sender).CreateGraphics();
                g.FillEllipse(Brushes.Black, e.X, e.Y, 4, 4);
                Point pt = new Point(e.X, e.Y);
                m_lsPoints.Add(pt);
                g.Dispose();   
            }
     // 处理Paint事件
          private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {            Graphics g = e.Graphics;
                foreach( Point pt in m_lsPoints )
                {
                    g.FillEllipse(Brushes.Black, pt.X, pt.Y, 4, 4);
                }
                p.Dispose(); 
            }
      

  5.   

    LZ的 不知道你们执行没执行LZ的代码,就这么说
      

  6.   

    谢谢4楼大侠,按照您的这个思路实现了,就是在paint里实现的。
      

  7.   

    虽然看到这个帖是一年多前的,但是我还是要说,lz你的事件监听搞错了,应该监听mouse click事件,不是mouse down事件,mouse down事件当然是鼠标按下就有啦,一放就不是down了嘛。另外吐槽一下,是vs自动补全出卖你了。。