日期:2014-05-17  浏览次数:21339 次

c#在picturebox里鼠标单击画点
我想实现的是在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();      
        }

------解决方案--------------------


  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(); 
        }