Редактировать: После прочтения комментария Криса я согласен, что вы, вероятно, не должны использовать это.
Чтобы ответить на другую часть вопроса, вы можете получить графический объект для произвольного элемента управления с помощью:
Graphics g = panel1.CreateGraphics();
Но при этом вы также несете ответственность за его очистку, поэтому правильная форма:
using (Graphics g = this.CreateGraphics())
{
// all your drawing here
}