Credo che il problema è la vostra proprietà Font alla luce della natura di come Designer funziona per quanto riguarda i pannelli e il loro contenuto. Di default il Font dell'etichetta eredita dal Font del suo contenitore (puoi testarlo aggiungendo un pannello a un controllo, quindi aggiungi un'etichetta a quel pannello, quindi cambia il Font del Pannello e viola, l'etichetta - - a meno che tu non ti abbia dato un font non predefinito - si aggiornerà con il nuovo font Font).
Quindi, così com'è, quando il controllo viene aggiunto al modulo, il Font dell'etichetta viene aggiornato per corrispondere al Carattere del contenitore e viene avviato il ciclo infinito.
Sembra che sia possibile risolvere questo problema dando all'etichetta un carattere esplicito quando viene creato. Qualcosa del genere sembra per aggirare il problema:
public CustomControlTest()
{
_label = new Label();
_label.Font = new Font("Ariel", 8.5f);
this.Controls.Add(_label);
}
ETA: In risposta a Hans, sono stato in grado di riprodurre l'incidente utilizzando il codice fornito e VS2008, e sono stato in grado di evitare l'incidente inizializzando il carattere .
ETA2: Nel mio precedente ETA, ho realizzato che la mia risposta poteva sembrare più dura di quanto intendessi. Forse avrei dovuto precisare che non ho visto il crash fino a quando non ho provato ad aggiungere il controllo a un modulo. Hans ha ragione che in sé e per sé, quel codice non dovrebbe causare l'arresto anomalo di Visual Studio ... è quando il progettista interviene per provare a inizializzare e disegnare il controllo in cui si imbatte in problemi. Su quella nota, come si aggiungono commenti direttamente al post di un'altra persona? È necessaria una certa reputazione minima?
Non sono sicuro, ma rimuoverò 'this.Controls.Add (_label);' dal costruttore e lo metto altrove - se hai un * .Design.cs, fai il setup lì forse .. . – FrustratedWithFormsDesigner