Estoy haciendo algunos controles que tienen que compartir el mismo aspecto y comportamiento común, aunque están diseñados para diferentes tipos de entradas. Así que hice una BaseClass que hereda de UserControl, y todos mis controles heredan de BaseClass.Cómo acceder a controles heredados en el diseñador de winforms
Sin embargo, si agrego controles para BaseClass en el diseñador, como TableLayoutPanel, no puedo acceder a ellos cuando estoy diseñando las clases heredadas. Veo TableLayoutPanel, pero a pesar de que está "protegido", no puedo modificarlo ni ponerle controles a través del diseñador. No tengo problemas para acceder por código, pero no quiero perder la capacidad de usar el diseñador.
En este momento, simplemente eliminé todos los controles de BaseClass, agregué el diseño y todos los controles comunes en cada una de las clases heredadas, luego utilicé referencias para manipularlos dentro de BaseClass. Pero eso no me satisface en absoluto. ¿Hay alguna manera de que el diseñador trabaje con controles heredados de miembros protegidos?
Medio Ambiente: C#, .NET 3.5, Visual Studio 2008
EDITAR para responder a la sugerencia de SLaks. Intenté configurar una propiedad, y aunque no estoy acostumbrado a usarla, parece que no funciona. Aquí está el código que probé:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public TableLayoutPanel TableLayoutPanel1
{
get { return tableLayoutPanel1;}
set { tableLayoutPanel1 = value;}
}
}
public partial class UserControl2 : UserControl1
{
public UserControl2()
{
InitializeComponent();
}
}
¿Sería capaz de heredar de TableLayoutPanel? – SLaks
Claro, siempre puedes crear tu propio control heredado del control de winforms. Hice esto para implementar algunos controles. Pero eso no es lo que estoy tratando de lograr aquí. Intento tener un control con varios controles básicos: un panel de salida de tabla, con algunos controles (como una etiqueta) y varios espacios vacíos que las clases heredadas deben rellenar con los controles que elijan. El objetivo final es agregar todos los controles de tesis a la caja de herramientas y luego drap y colocarlos en el diseñador para crear formularios que tienen muchos controles pero comportamiento/diseño común a través de estos controles. – Ksempac
Y, por cierto, heredar de un control Winform cortará al diseñador, ya que, por lo general, el objetivo es solo implementar un comportamiento específico, sin rediseñar el control usted mismo. – Ksempac