Я создал пустой конструктор для своей пользовательской реализации UltraGridBagLayoutPanel. Несмотря на то, что david.healed прав, в этом нет необходимости, весьма полезно установить точку останова, чтобы проверить, что при инициализации формы он использует ваш класс для реализации вашего пользовательского элемента управления.
Было бы намного проще отредактировать файл конструктора, но я попробовал это и изменил тип поля для элемента управления, а также изменил назначение поля на новый экземпляр моего пользовательского элемента управления.
private Infragistics.Win.Misc.UltraGridBagLayoutPanel ultraGridBagLayoutPanel1;
this.ultraGridBagLayoutPanel1 = new Infragistics.Win.Misc.UltraGridBagLayoutPanel();
до
private Athia.Reports.ultraGridBagLayoutPanel1 ultraGridBagLayoutPanel1;
this.ultraGridBagLayoutPanel1 = new Athia.Reports.ultraGridBagLayoutPanel1();
При этом каждый раз происходит разрушение Visual Studio, и для его исправления необходимо использовать текстовый редактор, чтобы вернуть его снова. Поэтому, если кто-то не может описать, что не так с моей реализацией этого подхода, возможно, называть класс тем же, что и имя элемента управления, не очень хорошая идея, я думаю, что единственный безопасный и надежный способ достичь этого, как Calanus описывает в шагах 1 до 5 или как небольшое отклонение от этого, как справедливо указывает Роб Виндзор, перезапуск VS автоматически перенесет элемент управления в панель инструментов. К несчастью для меня, я должен изменить все дочерние элементы управления с исходного класса на мой настроенный класс: - (.