My complaints are related to the code examples and appendix chapters. I personally like to type the every example the book has because I believe that’s the only way reader can truly learn the subject. This is especially true when learning new technology or sub technology one needs to understand at the code level.
As I said the code examples were very practical and accurate but not all of the relevant codes for the examples were included on some examples. It is perfectly understandable at general level from author’s standpoint and that’s why the code download exists but especially at the first chapters it caused some confusion as I needed to dig the whole code from the code downloads as I wasn’t sure what I was supposed to have as a whole to get the example to work. It bit ruined my habit to type the examples, but that’s very minor issue after all. I state that it was the problem in the first chapters when grasping the basics. I had these feelings especially in drawing related chapters. I think having full examples on these chapters would have made them slightly better.
Even though delegates and events as well as serialization basics are very important part of the .NET Framework and provide general knowledge related to the application development, I think it wouldn’t have been necessary to cover the basics of them even as brief appendix chapters. Author explained in the preface that these topics are of special importance to Windows Forms programming and therefore they are covered, but I think that the reader still must be familiar with C# before reading this book. Every self-respecting C# book author has covered these subjects already thoroughly. Therefore it would have been valid to assume that the reader is already familiar with these concepts and just go through things from Windows Forms angle. The saved space could have been used for a case study for example.