Approfitto del fatto che Murphy si e' assentato per prendere un caffe' per segnalare come crashare il designer di VS2005 in poco tempo e, in base a questo evitare che succeda quando in realta' non dovrebbe.

Ho creato una classe:

public class MyTestClass
{
  private string mName;
  public string Name
  {
   
get { return mName;}
   
set { mName = value;}
  }
}

e ho aggiunto ad un banale usercontrol che ha all'interno un pulsante Button1 una proprieta' di tipo MyTestClass

namespace BugUCClient_CS
{
  
public partial class MyBuggyUC :
UserControl
  
{
    
public
MyBuggyUC()
   
{
     
InitializeComponent();
   
}
    
private MyTestClass mTC=null
;
    
public MyTestClass
TestClass
    
{
      
get { return
mTC;}
      
set {button1.Text = value.Name;
}
    
}
   }
}
Trascinate lo usercontrol in un form, tutto ok.
Chiudete e riaprite il form e avrete un brutta sorpresa...

In VS2003 si ha lo stesso messaggio (il problema e' banale) ma pero' il form rimane visibile e, nella nuova logica delle classi parziali dove il codice generato dal designer non e' immediatamente visibile prevedo che questo comportamento creera' parecchio panico.
Questo e' un esempio banale, ma vi assicuro che quando lo UserControl e' complesso risalire al problema non e' cosi immediato, nel mio caso ho risolto marcando con:

[Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

La proprieta' incriminata e rimaneggiando il file gestito dal designer visto che non mi interessava che cio' avvenisse.

Developer avvisato...