title: cannot draw ellipse on form load in c#
body: <p>I am trying to draw some ellipse in a picturebox that contains a PNG on a formload in c#.  When I execute the code down below, I see my ellipses for half of a second, then I don't see them no more.  </p>
  
  <p>When I click on my picturebox, I am able to draw an ellipse however, when I minimize the form, they don't appear no more.  </p>
  
  <p>I've read that you shouldn't put your drawing code in the formload but rather in the OnPaint method, which is what I did.  I don't know what to try anymore.  thank you. (Be aware that I've left some code commented to show what I've tried).</p>
  
  <pre><code>public partial class FormParterre : Form
  {
      Graphics g;
      float circleSize = 15;
      //Brushes rouge = new Brushes (Brushes.Red);
  
      ReservationBilletSiegeDAO reservationBilletSiegeDAO = new ReservationBilletSiegeDAO();
      SiegeDAO siegeDAO = new SiegeDAO();
  
      List &lt;Siege&gt; sieges;
      List&lt;ReservationBilletSiege&gt; rbs;
      ReservationBillet reservationBillet = new ReservationBillet();
      ReservationBilletSiege reservationBilletSiege;
  
      SolidBrush semiTransBrush;
  
  
      public FormParterre()
      {
          InitializeComponent();
          pictureBox1.Image = new Bitmap("./parterre.png");
          g = pictureBox1.CreateGraphics();
  
  
      }
  
      public FormParterre(ReservationBillet rb)
      {
          reservationBillet = rb;
          pictureBox1.Image = new Bitmap("./parterre.png");
          g = pictureBox1.CreateGraphics();
  
  
  
          InitializeComponent();
      }
  
      protected override void OnPaintBackground(PaintEventArgs e)
      {
          // do nothing! prevents flicker
      }
  
      protected override void OnPaint(PaintEventArgs e)
      {
  
          sieges = siegeDAO.readAll();
  
          rbs = reservationBilletSiegeDAO.readAll();
  
          foreach (ReservationBilletSiege reservationBilletSiegeTMP in rbs)
          {
              Console.WriteLine(reservationBilletSiegeTMP.toString());
              int x = siegeDAO.read(reservationBilletSiegeTMP.idSiege).xValeur;
              int y = siegeDAO.read(reservationBilletSiegeTMP.idSiege).yValeur;
              float xx = (float)x;
              float yy = (float)y; 
              Console.WriteLine("le x: " + xx);
              Console.WriteLine("le y: " + yy);
  
  
                /*e.Graphics.FillRectangle(new SolidBrush(BackColor), e.ClipRectangle);*/
              g.FillEllipse(new SolidBrush(Color.FromArgb(128, 0, 0, 255)), xx - circleSize / 2, yy - circleSize / 2, circleSize,                                     circleSize);
          }
  
      }
  
      private void pictureBox1_Click(object sender, EventArgs e)
      {  
          MouseEventArgs me = (MouseEventArgs)e;
          txtX.Text = me.X.ToString();
          txtY.Text = me.Y.ToString();
  
          Console.WriteLine("click"); 
  
          g.FillEllipse(new SolidBrush(Color.FromArgb(128, 0, 0, 255)), float.Parse(txtX.Text) - circleSize / 2, float.Parse(txtY.Text) - circleSize / 2, circleSize, circleSize);
  
  
  
  
  
      }
  
      private void FormParterre_Shown(object sender, EventArgs e)
      {
  
      }
  
      private void FormParterre_Load(object sender, EventArgs e)
      {
  
          /*sieges = siegeDAO.readAll();
          //semiTransBrush = new SolidBrush(Color.FromArgb(128, 0, 0, 255));
  
  
  
          rbs = reservationBilletSiegeDAO.readAll();
  
          foreach (ReservationBilletSiege reservationBilletSiegeTMP in rbs)
          {
              Console.WriteLine(reservationBilletSiegeTMP.toString());
              int x = siegeDAO.read(reservationBilletSiegeTMP.idSiege).xValeur;
              int y = siegeDAO.read(reservationBilletSiegeTMP.idSiege).yValeur;
              float xx = (float)x;
              float yy = (float)y; 
              Console.WriteLine("le x: " + xx);
              Console.WriteLine("le y: " + yy);
  
              g.FillEllipse(new SolidBrush(Color.FromArgb(128, 0, 0, 255)), xx - circleSize / 2, yy - circleSize / 2, circleSize, circleSize);
          }*/
      }
  
  
  }
  </code></pre>