public void Refresh()
        {
            var g = panel1.CreateGraphics();

            g.Clear(panel1.BackColor);

            foreach (var item in shapes)
            {
                if (item is rectangle)
                {
                    rectangle r = (rectangle)item;
                    r.Draw(g);
                }
                else if (item is circle)
                {
                    circle c = (circle)item;
                    c.Draw(g);
                }
                else if (item is ellipse)
                {
                    ellipse e = (ellipse)item;
                    e.Draw(g);
                }
                else if (item is line)
                {
                    line l = (line)item;
                    l.Draw(g);
                }
                else if (item is polygon)
                {
                    polygon p = (polygon)item;
                    p.Draw(g);
                }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            circle c = new circle
            {
                r         = 34,
                x         = 30,
                y         = 40,
                thickness = 1,
                color     = Color.LightSkyBlue,
                fillcolor = Color.Orange,
            };


            propertyGrid1.SelectedObject = c;
            shapes.Add(c);
            Refresh();
        }