I'm not positive, this is just a guess. In your constructor you have a bunch of SetStyle method calls. I'm thinking one of those is causing the shapes you draw to not be saved by windows. I'm guessing you've made the program think you will redraw each shape yourself when it calls the Paint event.