Firstly, stop creating Graphics objects: they are a scarce resource and will generally run out well before the Garbage Collector chips in to Dispose them. If you create a Graphics object, you should Dispose it when you hgave finished with it. The same goes for Pens, Brushes, and so forth.
Second: Instead of faffing like you are, do your painting in the panel1 Paint event - you are handed the appropriate Graphics object ready to go in the EventArgs parameter, and it means that you picture is drawn when ever it needs to be. You can force it by using the Invalidate method of the panel, which will cause a re-draw when ready.
Thirdly, see this article:
Extended Graphics - Rounded rectangles, Font metrics and more for C# 3.0[
^]