2012-11-18 20 views
5

Użyłem formantu użytkownika jako klasy bazowej (nazwijmy to BaseUC) z 3 etykietami (w 3 liniach) na nim (są one ustawione jako chronione).Jak zmienić pozycję odziedziczonych elementów w dziedziczonym elemencie użytkownika

Istnieje również inna kontrola użytkownika, która dziedziczy po niej (InheritedUC). Dodałem dwie kolejne etykiety w InheritedUC, które są umieszczone pomiędzy etykietami bazy (czyli 5 linii).

Wszystko, co jest w porządku, to projekt interfejsu użytkownika Visiual Studio. Ale kiedy uruchomię aplikację, etykiety na BaseUC pokrywają się z tymi w InheritedUC i nie widzę tych na odziedziczonym kontrolerze.

Wszelkie pomysły na rozwiązanie tego problemu? Dziękuję bardzo

+0

Jest to problem z projektowaniem. Powiązane z twoim html lub CSS. Nie jest to asp.net, C# ani dziedziczenie. –

+1

Być może trzeba jawnie ustawić górnej i lewej pozycji, po prostu sprawdzić, co jest renderowane/generowane teraz. Lub użyć jakiegoś obliczonej własności publicznej w klasie bazowej, klasa dziecko może również wykorzystać. – ryadavilli

+0

Dzięki Ryadavilli. Zrobiłem ustawić najwyższe pozycje jawnie, w dziedziczonej klasie. Ale myślałem, czy mogę jakoś uniknąć robić. – Yalda

Odpowiedz

1

Od MSDN: Control.Anchor Property

Użyj właściwości Anchor zdefiniowanie w jaki sposób sterowania jest zmieniany automatycznie jak kontrola jego rodzic jest zmieniany. Kotwiczenie dźwięku na kontroli macierzystego zapewnia, że ​​zakotwiczone krawędzie pozostają w tej samej pozycji w stosunku do krawędzie sterowania nadrzędnego, gdy sterowanie dominująca jest zmieniany.

Można zakotwiczyć sterowanie do jednej lub więcej krawędzi swojego kontenera. Dla przykładu, jeśli masz formularz z przyciskiem, którego wartość właściwości kotwicy jest ustawiona na górę i dół, przycisk jest rozciągany, aby utrzymać zakotwiczoną odległość do górnej i dolnej krawędzi formularza jako wysokość kształtu jest zwiększony.

Ustaw właściwość Kotwica na wszystkich etykietach: Na przykład:

label1.Anchor = AnchorStyles.Top | AnchorStyles.Left; 
1

Jeśli umieścisz swoje kontrole w FlowLayoutPanel i ustaw następujące opcje:

AutoScroll = True 
FlowDirection = TopDown 
WrapContents = False 

Następnie należy uzyskać panel, który będzie się powiększał i zmniejszał wraz z dodawaniem lub usuwaniem elementów sterujących.

Source

Powiązane problemy