Myślę, że problem jest nieruchomość czcionki w świetle charakteru, jak projektant pracuje w odniesieniu do paneli i ich zawartości. Domyślnie czcionka etykiety dziedziczy z czcionki swojego kontenera (możesz to sprawdzić, dodając panel do kontrolki, a następnie dodać etykietę do tego panelu, a następnie zmienić czcionkę panelu i altówkę, swoją etykietę - - chyba że masz explicity, biorąc pod uwagę inną niż domyślną czcionkę - zaktualizuje się nową czcionką kontenera).
W obecnej wersji, po dodaniu formantu, czcionka etykiety jest aktualizowana, aby dopasować czcionkę do kontenera i uruchomiona jest pętla bez końca.
Wygląda na to, że możesz to naprawić, nadając swojej etykiecie wyraźną czcionkę po jej utworzeniu. Coś jak to wydaje się, aby obejść ten problem:
public CustomControlTest()
{
_label = new Label();
_label.Font = new Font("Ariel", 8.5f);
this.Controls.Add(_label);
}
ETA: W odpowiedzi na Hansa, udało mi się odtworzyć awarię przy użyciu kodu podanego i VS2008, i udało mi się uniknąć katastrofy poprzez inicjowanie Czcionka .
ETA2: W mojej poprzedniej ETA zdałem sobie sprawę, że moja odpowiedź mogła brzmieć ostrzej, niż zamierzałem. Może powinienem był opracować, aby wspomnieć, że nie widziałem awarii, dopóki nie próbowałem dodać kontroli do formularza. Hans ma rację, że sam w sobie ten kod nie powinien powodować awarii programu Visual Studio ... kiedy projektant podejmuje próbę zainicjowania i narysowania kontroli, która napotka na problemy. W tej notatce, w jaki sposób można dodawać komentarze bezpośrednio do postu innej osoby? Czy potrzebna jest pewna minimalna reputacja?
Nie jestem pewien, ale usunąłbym 'this.Controls.Add (_label);' z konstruktora i umieścił go gdzie indziej - jeśli masz plik * .Design.cs, zrób tam zestaw .. . – FrustratedWithFormsDesigner