he creado un constructor vacío para mi implementación personalizada de UltraGridBagLayoutPanel. Aunque david.healed es correcto, no es necesario, es bastante útil poner un punto de interrupción para comprobar que cuando el formulario se inicializa está utilizando su clase para implementar su control personalizado.
Habría sido mucho más fácil editar el archivo de diseñador, pero lo intenté y cambié el tipo de campo para el control y también cambié la asignación del campo a una nueva instancia de mi control personalizado.
private Infragistics.Win.Misc.UltraGridBagLayoutPanel ultraGridBagLayoutPanel1;
this.ultraGridBagLayoutPanel1 = new Infragistics.Win.Misc.UltraGridBagLayoutPanel();
a
private Athia.Reports.ultraGridBagLayoutPanel1 ultraGridBagLayoutPanel1;
this.ultraGridBagLayoutPanel1 = new Athia.Reports.ultraGridBagLayoutPanel1();
Hacer esto destruye Visual Studio cada vez, y para solucionarlo requiere el uso de un editor de texto para poner de nuevo otra vez. Por lo tanto, a menos que alguien pueda describir lo que está mal con mi implementación de este enfoque, quizás llamar a la clase igual que el nombre de control no es una gran idea, creo que la única forma segura y confiable de lograrlo es como describe Calanus en los pasos 1 a 5 o como una pequeña desviación de eso, como Rob Windsor señala correctamente reiniciar VS, traerá el control a la Caja de herramientas automáticamente. Desafortunadamente para mí, tengo que cambiar todos los controles secundarios de la clase original a mi clase personalizada :-(.
He realizado muchos controles extendidos y esta es la forma de agregarlos al formulario. Además, puede agregar ese proyecto a su solución actual y también agregar la referencia al dll de su proyecto (TextBoxExt) al proyecto en el que planea usar TextBoxExt. –