Mai avuto bisogno di una Form "particolare" ?

Su altro Forum questa mia soluzione ha avuto un certo successo, perciò eccola anche qui, per chiunque fosse interessato :

 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Disegna();
        }
 
        //Selezione e mouse
        private bool selezione = false;
        private int eXSel = 0;
        private int eYSel = 0;
 
        private void Disegna()
        {
            int rectArcoWidth = 60;
            int rectArcoHeight = 60;
            System.Drawing.Drawing2D.GraphicsPath contorno = new System.Drawing.Drawing2D.GraphicsPath();
 
            contorno.StartFigure();
            contorno.AddLine(rectArcoWidth / 2, 0, this.Width - rectArcoWidth / 2, 0);
            contorno.AddArc(this.Width - rectArcoWidth, 0, rectArcoWidth, rectArcoHeight, -90, 90);
            contorno.AddLine(this.Width, rectArcoHeight / 2, this.Width, this.Height - rectArcoHeight / 2);
            contorno.AddArc(this.Width - rectArcoWidth, this.Height - rectArcoHeight, rectArcoWidth, rectArcoHeight, 0, 90);
            contorno.AddLine(this.Width - rectArcoWidth / 2, this.Height, rectArcoWidth / 2, this.Height);
            contorno.AddArc(0, this.Height - rectArcoHeight, rectArcoWidth, rectArcoHeight, 90, 90);
            contorno.AddLine(0, this.Height - rectArcoHeight / 2, 0, rectArcoHeight / 2);
            contorno.AddArc(0, 0, rectArcoWidth, rectArcoHeight, 180, 90);
            contorno.CloseFigure();
            Region R = new Region (new Rectangle(0, 0, this.Width , this.Height));
            R.Intersect(contorno);
            this.Region = R;
        }
 
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            this.selezione = true;
            eXSel = e.X;
            eYSel = e.Y;
        }
 
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (this.selezione==true) 
            {
                this.Left -= (this.eXSel - e.X);
                this.Top -= (this.eYSel - e.Y);
            }
        }
 
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            this.selezione = false;
        }
    }
1. Posso ottenere archi di curvatura anche ellittici, giocando con i due valori rectArcoWidth e rectArcoHeight. Unico requisito è avere la Form con FormBorderStyle = None. Il resto lo fa tutto il codice.

2. C'è già il codice per spostarla con il mouse.