private void btnGeneric_Click(object sender, EventArgs e) { Button btn = sender as Button; Type type = btn.Tag as Type; var rect = new Rectangle(location, new Size(sideLength, sideLength)); GraphicElement graphicElement = Activator.CreateInstance(type, _currentElement, sideLength) as GraphicElement; sideLength += 50; graphicElement.Draw(panel1.CreateGraphics(), new Point(panel1.ClientSize.Width / 2, panel1.ClientSize.Height / 2)); _currentElement = graphicElement; }