I also have a tool I use that may be of use to others...
There is a nasty bug with user controls in the VS enviornment, I spent the last 3 months working with MS and they have finally decided to 'not' fix it in VS 2003, but it is fixed in 2005 /sigh.
If you use UserControls or even inherited forms you are subject to the bug when you nest controls in the same assembly.
i.e. you create an address edit control, then drop the address edit control on a person edit control to reuse it, it all behaves as expected until you introduce a compile error.
Once you receive a compile error if the designer is open it will then promptly remove the user control and all control settings from the person control due to the assembly for it no longer being on the disk introducing a very annoying code loss situation.
I have a VSIP that doesn't truly solve the problem but it does change the environment so that it should never happen to you again unless you tell VS that you want to lose code.
It does the following:
1) Changes the default to code view instead of design view for .cs files.
2) Closes all designers on compile
3) Closes all designers when exiting your solution/project
4) Checks for the existence of the assembly containing the .cs file before opening the designer and gives you a dialog to open and possibly lose code or cancel.
If others have run into the nested user control / inherited form bug and want this let me know.
We use reusable user controls extensively and bundle them in a single assembly, otherwise we would need to deploy 400 user controls for one application so it was a very big deal for us.
John