miałem podobne zadanie do zrobienia i moje rozwiązanie jest następujące:
Dodaj TableLayoutPanel do formularza (lub jakimkolwiek pojemniku).
Ustaw kolumny i wiersze TableLayoutPanel na 1 i zmień na 100%.
Zestaw doków do napełnienia.
Ustaw GrowStyle na fixedSize.
Ustaw AutoSize na true.
Następnie należy dodać wszystkie trzy formularze/formanty, z których jeden musi być wyświetlany w zależności od wyboru przycisku opcji. Upewnij się, że tylko jeden z nich jest widoczny. Można to zrobić za pomocą pierwszej funkcji FirstControl.Show(); a następnie w każdym zdarzeniu RadioButton ukryj bieżący i pokaż inny. możesz "zapamiętać" w zmiennej lokalnej (powiedz: "obecnieVisibleControl" referencję, która jest obecnie widoczna)
uwaga: jeśli będziesz .Pokaż() więcej niż jeden na raz. następnie TableLayoutPanel uruchomi wyjątek, że jest pełny i nie może dodać więcej.
P.S. W moim przykładzie mam TableLayoutPanel w oknie MDI i trzy formularze, które zastępują się nawzajem za pomocą kliknięć przycisków, więc myślę, że skopiowanie mojego kodu źródłowego komplikuje "słowny" przykład.
P.P.S. Z mojego doświadczenia wynika, że Visual Studio czasami robi dziwne rzeczy w trybie projektowania. Musiałem usunąć i ponownie dodać TableLayoutPanel, aby poprawnie ustawić właściwości i uzyskać wyniki zarówno projektanta, jak i środowiska wykonawczego. Więc jeśli albo autosize, albo wartości bezwzględne/procentowe nie są przedstawione na ekranie projektanta, może to być raczej problem projektantów niż twoich. PO PROSTU USUŃ GO I PONOWNIE.
dzięki, może ukryć panel, ale komórka Cell .. nadal tam jest? Czy czegoś brakuje? – Bohn
@BDotA, czy jesteś pewien, że twój wiersz jest autosize? – arbiter
dobrze w polu właściwości TableLayoutPanel była właściwość "Wiersze", kliknąłem na nią, otworzyło się kolejne okno dialogowe. moje wiersze zostały tam wymienione. były tam opcje przycisków radiowych CellType. więc kliknąłem na każdy z moich wierszy i wybrałem dla niego AutoSize .... to jest to, co zrobiłem. – Bohn