Successful GDI+ programming requires a new style of thinking for some programmers due to the need for careful scheduling of events. For example, no directions are given for how to add the code into a program in the book's first example on page 425 (which simply draws a line). If you double click on a form to open a code window, the default event that is opened is the Form_Load event. If you then add that code to the Form1_Load event and run the program ... nothing happens. If you add a button to the form and move the same code to the Button1_Click event to try to get it to run, it works! But, as the book explains in the next paragraph, resizing the form erases the line. The book correctly points out that you must use the form's Paint event to get your line to be refreshed along with the form when necessary, but why is there no line at all when you use the Form1_Load event?
The answer is that the form is automatically repainted by the system AFTER the code to draw the line is executed - and your line doesn't get redrawn again. Gotcha's like this can be an unending source of confusion for GDI+ programmers.
To understand more about how Paint actually redraws a form, it's instructive to try another experiment. Instead of drawing a line or a shape, simply add a diagnostic Debug.Write statement to the form's Paint event. The code is on the next page.

