Zajmuję się tworzeniem aplikacji Windows Forms (.NET 2.0, VS 2005). Mam postać, która zasadniczo zawiera panel, który jest dynamicznie zmienionym rozmiarze z postaci:Jak ustawić paski przewijania w panelu z możliwością zmiany rozmiaru, gdy zawarta w nim kontrola jest za duża?
this.panel1.Dock=DockStyle.Fill;
Panel ten jest po prostu używany jako pojemnik. W czasie wykonywania, kontrola zwyczaj zostanie dodana:
UserControl uc=new UserControl();
panel1.Controls.Add(uc);
uc.Dock=DockStyle.Fill;
Jak to zwyczaj kontrola ma minimalne zapotrzebowanie na wielkość, chcę paski przewijania pojawiają się na panelu zawierającego jeśli robi się zbyt mały, aby pokazać całą kontrolę:
this.panel1.AutoScroll=true;
To nie działa. Próbowałem zmienić rozmiar panelu za pomocą właściwości Anchor zamiast właściwości Dock, bezskutecznie.
Właściwość Dock jest dobra zarówno dla panelu, jak i dla użytkownika, o ile ustawiono AutoScrollMinSize (http://social.msdn.microsoft.com/Forums/ en-US/winforms/thread/56267eb1-25af-4df2-82a3-0498563c7eef). – Mac
Zakotwiczenie nie jest tym samym, co Dokowanie. Na przykład, jeśli zrobię niewidoczną kontrolkę zadokowaną, automatycznie zmieni ona kolejną kontrolę. Zakotwiczenie nie daje tej umiejętności. Dokowanie jest bardzo użyteczne, ale jak mówi OP, nie zawsze działa tak, jakbyś miał nadzieję z nadrzędną kontrolą Autoscroll - nawet przy ustawianiu minimalnego rozmiaru zadokowanego sterowania – Gwynge