Jak uzyskać dostęp do dziedziczonych elementów sterujących w projektancie winforms
Tworzę elementy sterujące, które muszą mieć ten sam wygląd i pewne typowe zachowanie, chociaż są przeznaczone dla różnych rodzajów danych wejściowych. Tak zrobiłem BaseClass, który dziedziczy po UserControl, a wszystkie moje kontrolki dziedziczą z BaseClass.
Jeśli jednak dodam formanty do BaseClass w projektancie, takie jak TableLayoutPanel, nie mogę uzyskać do nich dostępu podczas projektowania dziedziczonych klas. Widzę TableLayoutPanel, ale mimo że jest „chroniony”, nie mogę go modyfikować ani umieszczać w nim formantów. Nie mam problemu z uzyskaniem dostępu przez kod, ale nie chcę stracić możliwości korzystania z projektanta.
W tej chwili po prostu usunąłem wszystkie elementy sterujące z BaseClass, dodałem układ i wszystkie typowe elementy sterujące w każdej z dziedziczonych klas, a następnie użyłem odnośników do manipulowania nimi wewnątrz BaseClass. Ale to mnie wcale nie satysfakcjonuje. Czy istnieje sposób, aby projektant pracował z odziedziczonymi kontrolkami chronionych elementów?
Środowisko: C #, .NET 3.5, Visual Studio 2008
EDIT, aby odpowiedzieć na sugestię SLaksa. Próbowałem ustawić właściwość i chociaż nie jestem przyzwyczajony do korzystania z nich, nie działa. Oto kod, który próbowałem:
<code> 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(); } } </code>