Можно попробовать оформить рисование по заданным территориям...
А вот там и различные проверки, ограничения...
Graphics gPanel = panel1.CreateGraphics();
Pen p = new Pen(Color.Red, 3);
gPanel.DrawLine(p, new Point(0, 0), new Point(50, 50));
Graphics gButton = button1.CreateGraphics();
gButton.DrawEllipse(p, new Rectangle(0, 0, 50, 20));
Примерно так оформить рисование...
Но это возможно не точно... Может есть и более "лучшая" идея...
По крайней мере я посчитал это возможным решением, но кода придется писать не мало...